diff options
author | Timo Sirainen <cras@irssi.org> | 2000-06-18 01:18:12 +0000 |
---|---|---|
committer | cras <cras@dbcabf3a-b0e7-0310-adc4-f8d773084564> | 2000-06-18 01:18:12 +0000 |
commit | a5d31a195d1e3b682cd57d88a5db7ef0ffa5d492 (patch) | |
tree | e5c335b77da2d17293e87debeb17ab4c966e34c4 /src/fe-common/core/fe-settings.c | |
parent | ca4226cca692ee96109a46b3a1d381ac0d37cb6f (diff) | |
download | irssi-a5d31a195d1e3b682cd57d88a5db7ef0ffa5d492.zip |
Changed option handling in /commands. Irssi will now complain about
unknown options and missing option arguments.
Renamed /SERVER -add, -remove and -list to /SERVER ADD, REMOVE and LIST.
git-svn-id: http://svn.irssi.org/repos/irssi/trunk@365 dbcabf3a-b0e7-0310-adc4-f8d773084564
Diffstat (limited to 'src/fe-common/core/fe-settings.c')
-rw-r--r-- | src/fe-common/core/fe-settings.c | 25 |
1 files changed, 16 insertions, 9 deletions
diff --git a/src/fe-common/core/fe-settings.c b/src/fe-common/core/fe-settings.c index f05faad0..299f437e 100644 --- a/src/fe-common/core/fe-settings.c +++ b/src/fe-common/core/fe-settings.c @@ -66,10 +66,12 @@ static void set_boolean(const char *key, const char *value) static void cmd_set(char *data) { GSList *sets, *tmp; - char *params, *key, *value, *last_section; + char *key, *value, *last_section; + void *free_arg; int found; - params = cmd_get_params(data, 2 | PARAM_FLAG_GETREST, &key, &value); + if (!cmd_get_params(data, &free_arg, 2 | PARAM_FLAG_GETREST, &key, &value)) + return; last_section = ""; found = 0; sets = settings_get_sorted(); @@ -110,15 +112,17 @@ static void cmd_set(char *data) if (!found) printtext(NULL, NULL, MSGLEVEL_CLIENTERROR, "Unknown setting %s", key); - g_free(params); + cmd_params_free(free_arg); } static void cmd_toggle(const char *data) { - char *params, *key, *value; + char *key, *value; + void *free_arg; int type; - params = cmd_get_params(data, 2 | PARAM_FLAG_GETREST, &key, &value); + if (!cmd_get_params(data, &free_arg, 2 | PARAM_FLAG_GETREST, &key, &value)) + return; type = settings_get_type(key); if (type == -1) @@ -130,7 +134,7 @@ static void cmd_toggle(const char *data) set_print(settings_get_record(key)); } - g_free(params); + cmd_params_free(free_arg); } static void show_aliases(const char *alias) @@ -173,11 +177,14 @@ static void alias_remove(const char *alias) static void cmd_alias(const char *data) { - char *params, *alias, *value; + char *alias, *value; + void *free_arg; g_return_if_fail(data != NULL); - params = cmd_get_params(data, 2 | PARAM_FLAG_GETREST, &alias, &value); + if (!cmd_get_params(data, &free_arg, 2 | PARAM_FLAG_GETREST, &alias, &value)) + return; + if (*alias == '-') { if (alias[1] != '\0') alias_remove(alias+1); } else if (*alias == '\0' || *value == '\0') @@ -186,7 +193,7 @@ static void cmd_alias(const char *data) printformat(NULL, NULL, MSGLEVEL_CLIENTNOTICE, IRCTXT_ALIAS_ADDED, alias); iconfig_set_str("aliases", alias, value); } - g_free(params); + cmd_params_free(free_arg); } static void cmd_unalias(const char *data) |