From 685d8fe5b033ffce40b02aaf4ec3341f5cf3350c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alexander=20F=C3=A6r=C3=B8y?= Date: Fri, 2 Oct 2015 20:25:14 +0200 Subject: [PATCH 1/4] Add SETTING_TYPE_ANY and replace -1 with it. --- src/core/settings.c | 9 +++++---- src/core/settings.h | 3 ++- src/fe-common/core/completion.c | 5 ++--- src/fe-common/core/fe-settings.c | 31 +++++++++++++++---------------- 4 files changed, 24 insertions(+), 24 deletions(-) diff --git a/src/core/settings.c b/src/core/settings.c index b34a5766..8e493124 100644 --- a/src/core/settings.c +++ b/src/core/settings.c @@ -59,7 +59,7 @@ static SETTINGS_REC *settings_get(const char *key, SettingType type) g_warning("settings_get(%s) : not found", key); return NULL; } - if (type != -1 && rec->type != type) { + if (type != SETTING_TYPE_ANY && rec->type != type) { g_warning("settings_get(%s) : invalid type", key); return NULL; } @@ -85,7 +85,7 @@ settings_get_str_type(const char *key, SettingType type) const char *settings_get_str(const char *key) { - return settings_get_str_type(key, -1); + return settings_get_str_type(key, SETTING_TYPE_ANY); } int settings_get_int(const char *key) @@ -163,6 +163,7 @@ char *settings_get_print(SETTINGS_REC *rec) case SETTING_TYPE_TIME: case SETTING_TYPE_LEVEL: case SETTING_TYPE_SIZE: + case SETTING_TYPE_ANY: value = g_strdup(settings_get_str(rec->key)); break; } @@ -380,10 +381,10 @@ SettingType settings_get_type(const char *key) { SETTINGS_REC *rec; - g_return_val_if_fail(key != NULL, -1); + g_return_val_if_fail(key != NULL, SETTING_TYPE_ANY); rec = g_hash_table_lookup(settings, key); - return rec == NULL ? -1 : rec->type; + return rec == NULL ? SETTING_TYPE_ANY : rec->type; } /* Get the record of the setting */ diff --git a/src/core/settings.h b/src/core/settings.h index af00cc80..6f2cf129 100644 --- a/src/core/settings.h +++ b/src/core/settings.h @@ -7,7 +7,8 @@ typedef enum { SETTING_TYPE_BOOLEAN, SETTING_TYPE_TIME, SETTING_TYPE_LEVEL, - SETTING_TYPE_SIZE + SETTING_TYPE_SIZE, + SETTING_TYPE_ANY } SettingType; typedef struct { diff --git a/src/fe-common/core/completion.c b/src/fe-common/core/completion.c index 312e417c..4461de92 100644 --- a/src/fe-common/core/completion.c +++ b/src/fe-common/core/completion.c @@ -362,8 +362,7 @@ static GList *completion_get_settings(const char *key, SettingType type) for (tmp = sets; tmp != NULL; tmp = tmp->next) { SETTINGS_REC *rec = tmp->data; - if ((type == -1 || rec->type == type) && - g_ascii_strncasecmp(rec->key, key, len) == 0) + if ((type == SETTING_TYPE_ANY || rec->type == type) && g_ascii_strncasecmp(rec->key, key, len) == 0) complist = g_list_insert_sorted(complist, g_strdup(rec->key), (GCompareFunc) g_istr_cmp); } g_slist_free(sets); @@ -682,7 +681,7 @@ static void sig_complete_set(GList **list, WINDOW_REC *window, if (*line == '\0' || !g_strcmp0("-clear", line) || !g_strcmp0("-default", line)) - *list = completion_get_settings(word, -1); + *list = completion_get_settings(word, SETTING_TYPE_ANY); else if (*line != '\0' && *word == '\0') { SETTINGS_REC *rec = settings_get_record(line); if (rec != NULL) { diff --git a/src/fe-common/core/fe-settings.c b/src/fe-common/core/fe-settings.c index 9c370838..2627989d 100644 --- a/src/fe-common/core/fe-settings.c +++ b/src/fe-common/core/fe-settings.c @@ -126,7 +126,7 @@ static void cmd_set(char *data) /* change the setting */ switch (rec->type) { case SETTING_TYPE_BOOLEAN: - if (clear) + if (clear) settings_set_bool(key, FALSE); else if (set_default) settings_set_bool(key, rec->default_value.v_bool); @@ -149,32 +149,30 @@ static void cmd_set(char *data) case SETTING_TYPE_TIME: if (!settings_set_time(key, clear ? "0" : set_default ? rec->default_value.v_string : value)) - printformat(NULL, NULL, MSGLEVEL_CLIENTERROR, - TXT_INVALID_TIME); + printformat(NULL, NULL, MSGLEVEL_CLIENTERROR, TXT_INVALID_TIME); break; case SETTING_TYPE_LEVEL: if (!settings_set_level(key, clear ? "" : set_default ? rec->default_value.v_string : value)) - printformat(NULL, NULL, MSGLEVEL_CLIENTERROR, - TXT_INVALID_LEVEL); + printformat(NULL, NULL, MSGLEVEL_CLIENTERROR, TXT_INVALID_LEVEL); break; case SETTING_TYPE_SIZE: if (!settings_set_size(key, clear ? "0" : set_default ? rec->default_value.v_string : value)) - printformat(NULL, NULL, MSGLEVEL_CLIENTERROR, - TXT_INVALID_SIZE); + printformat(NULL, NULL, MSGLEVEL_CLIENTERROR, TXT_INVALID_SIZE); + break; + case SETTING_TYPE_ANY: + /* Unpossible! */ break; } signal_emit("setup changed", 0); - printformat(NULL, NULL, MSGLEVEL_CLIENTCRAP, - TXT_SET_TITLE, rec->section); + printformat(NULL, NULL, MSGLEVEL_CLIENTCRAP, TXT_SET_TITLE, rec->section); set_print(rec); } else - printformat(NULL, NULL, MSGLEVEL_CLIENTERROR, - TXT_SET_UNKNOWN, key); + printformat(NULL, NULL, MSGLEVEL_CLIENTERROR, TXT_SET_UNKNOWN, key); } - cmd_params_free(free_arg); + cmd_params_free(free_arg); } /* SYNTAX: TOGGLE [on|off|toggle] */ @@ -187,20 +185,21 @@ static void cmd_toggle(const char *data) if (!cmd_get_params(data, &free_arg, 2 | PARAM_FLAG_GETREST, &key, &value)) return; - if (*key == '\0') cmd_param_error(CMDERR_NOT_ENOUGH_PARAMS); + if (*key == '\0') + cmd_param_error(CMDERR_NOT_ENOUGH_PARAMS); type = settings_get_type(key); - if (type == -1) + if (type == SETTING_TYPE_ANY) printformat(NULL, NULL, MSGLEVEL_CLIENTERROR, TXT_SET_UNKNOWN, key); else if (type != SETTING_TYPE_BOOLEAN) printformat(NULL, NULL, MSGLEVEL_CLIENTERROR, TXT_SET_NOT_BOOLEAN, key); else { set_boolean(key, *value != '\0' ? value : "TOGGLE"); - set_print(settings_get_record(key)); + set_print(settings_get_record(key)); signal_emit("setup changed", 0); } - cmd_params_free(free_arg); + cmd_params_free(free_arg); } static int config_key_compare(CONFIG_NODE *node1, CONFIG_NODE *node2) From 5f35fbc57a18eabc68723f1b82aacbfd84f637d1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alexander=20F=C3=A6r=C3=B8y?= Date: Fri, 2 Oct 2015 20:29:19 +0200 Subject: [PATCH 2/4] Remove check for >= 0 for unsigned unichar. --- src/fe-text/gui-entry.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/fe-text/gui-entry.c b/src/fe-text/gui-entry.c index 17a7c507..c7d06404 100644 --- a/src/fe-text/gui-entry.c +++ b/src/fe-text/gui-entry.c @@ -35,21 +35,21 @@ static unichar i_toupper(unichar c) { if (term_type == TERM_TYPE_UTF8) return g_unichar_toupper(c); - return (c >= 0 && c <= 255) ? toupper(c) : c; + return c <= 255 ? toupper(c) : c; } static unichar i_tolower(unichar c) { if (term_type == TERM_TYPE_UTF8) return g_unichar_tolower(c); - return (c >= 0 && c <= 255) ? tolower(c) : c; + return c <= 255 ? tolower(c) : c; } static int i_isalnum(unichar c) { if (term_type == TERM_TYPE_UTF8) return (g_unichar_isalnum(c) || mk_wcwidth(c) == 0); - return (c >= 0 && c <= 255) ? isalnum(c) : 0; + return c <= 255 ? isalnum(c) : 0; } GUI_ENTRY_REC *active_entry; From 2127fd362e240a9fed09dff9044fe5c477fc2bf8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alexander=20F=C3=A6r=C3=B8y?= Date: Sat, 3 Oct 2015 19:07:08 +0200 Subject: [PATCH 3/4] Add -Wall and -Werror as CFLAGS to make. --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index c8bbb6d8..46f58766 100644 --- a/.travis.yml +++ b/.travis.yml @@ -22,5 +22,5 @@ install: true script: - ./autogen.sh --with-proxy --with-bot --with-perl=module --prefix=$HOME/irssi-build - cat config.log - - make + - make CFLAGS="-Wall -Werror" - make install From 58a166484ad7eab33c1ad72b64016e5aacebfaf5 Mon Sep 17 00:00:00 2001 From: dequis Date: Tue, 6 Oct 2015 04:51:16 -0300 Subject: [PATCH 4/4] Add xterm's keypad enter, meta-O-M to "key return" bindings From the 'kent' terminfo entry. Also applies to putty. Fixes #327 --- src/fe-text/gui-readline.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/fe-text/gui-readline.c b/src/fe-text/gui-readline.c index ec61e317..dc7185e7 100644 --- a/src/fe-text/gui-readline.c +++ b/src/fe-text/gui-readline.c @@ -1020,6 +1020,8 @@ void gui_readline_init(void) key_bind("key", NULL, "meta2-5F", "cend", (SIGNAL_FUNC) key_combo); key_bind("key", NULL, "meta2-1;5F", "cend", (SIGNAL_FUNC) key_combo); + key_bind("key", NULL, "meta-O-M", "return", (SIGNAL_FUNC) key_combo); + /* cursor movement */ key_bind("backward_character", "Move the cursor a character backward", "left", NULL, (SIGNAL_FUNC) key_backward_character); key_bind("forward_character", "Move the cursor a character forward", "right", NULL, (SIGNAL_FUNC) key_forward_character);