Add SETTING_TYPE_ANY and replace -1 with it.

This commit is contained in:
Alexander Færøy 2015-10-02 20:25:14 +02:00
parent 48375c3f90
commit 685d8fe5b0
No known key found for this signature in database
GPG Key ID: E15081D5D3C3DB53
4 changed files with 24 additions and 24 deletions

View File

@ -59,7 +59,7 @@ static SETTINGS_REC *settings_get(const char *key, SettingType type)
g_warning("settings_get(%s) : not found", key); g_warning("settings_get(%s) : not found", key);
return NULL; return NULL;
} }
if (type != -1 && rec->type != type) { if (type != SETTING_TYPE_ANY && rec->type != type) {
g_warning("settings_get(%s) : invalid type", key); g_warning("settings_get(%s) : invalid type", key);
return NULL; return NULL;
} }
@ -85,7 +85,7 @@ settings_get_str_type(const char *key, SettingType type)
const char *settings_get_str(const char *key) 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) 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_TIME:
case SETTING_TYPE_LEVEL: case SETTING_TYPE_LEVEL:
case SETTING_TYPE_SIZE: case SETTING_TYPE_SIZE:
case SETTING_TYPE_ANY:
value = g_strdup(settings_get_str(rec->key)); value = g_strdup(settings_get_str(rec->key));
break; break;
} }
@ -380,10 +381,10 @@ SettingType settings_get_type(const char *key)
{ {
SETTINGS_REC *rec; 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); 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 */ /* Get the record of the setting */

View File

@ -7,7 +7,8 @@ typedef enum {
SETTING_TYPE_BOOLEAN, SETTING_TYPE_BOOLEAN,
SETTING_TYPE_TIME, SETTING_TYPE_TIME,
SETTING_TYPE_LEVEL, SETTING_TYPE_LEVEL,
SETTING_TYPE_SIZE SETTING_TYPE_SIZE,
SETTING_TYPE_ANY
} SettingType; } SettingType;
typedef struct { typedef struct {

View File

@ -362,8 +362,7 @@ static GList *completion_get_settings(const char *key, SettingType type)
for (tmp = sets; tmp != NULL; tmp = tmp->next) { for (tmp = sets; tmp != NULL; tmp = tmp->next) {
SETTINGS_REC *rec = tmp->data; SETTINGS_REC *rec = tmp->data;
if ((type == -1 || rec->type == type) && if ((type == SETTING_TYPE_ANY || rec->type == type) && g_ascii_strncasecmp(rec->key, key, len) == 0)
g_ascii_strncasecmp(rec->key, key, len) == 0)
complist = g_list_insert_sorted(complist, g_strdup(rec->key), (GCompareFunc) g_istr_cmp); complist = g_list_insert_sorted(complist, g_strdup(rec->key), (GCompareFunc) g_istr_cmp);
} }
g_slist_free(sets); g_slist_free(sets);
@ -682,7 +681,7 @@ static void sig_complete_set(GList **list, WINDOW_REC *window,
if (*line == '\0' || if (*line == '\0' ||
!g_strcmp0("-clear", line) || !g_strcmp0("-default", line)) !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') { else if (*line != '\0' && *word == '\0') {
SETTINGS_REC *rec = settings_get_record(line); SETTINGS_REC *rec = settings_get_record(line);
if (rec != NULL) { if (rec != NULL) {

View File

@ -149,29 +149,27 @@ static void cmd_set(char *data)
case SETTING_TYPE_TIME: case SETTING_TYPE_TIME:
if (!settings_set_time(key, clear ? "0" : if (!settings_set_time(key, clear ? "0" :
set_default ? rec->default_value.v_string : value)) set_default ? rec->default_value.v_string : value))
printformat(NULL, NULL, MSGLEVEL_CLIENTERROR, printformat(NULL, NULL, MSGLEVEL_CLIENTERROR, TXT_INVALID_TIME);
TXT_INVALID_TIME);
break; break;
case SETTING_TYPE_LEVEL: case SETTING_TYPE_LEVEL:
if (!settings_set_level(key, clear ? "" : if (!settings_set_level(key, clear ? "" :
set_default ? rec->default_value.v_string : value)) set_default ? rec->default_value.v_string : value))
printformat(NULL, NULL, MSGLEVEL_CLIENTERROR, printformat(NULL, NULL, MSGLEVEL_CLIENTERROR, TXT_INVALID_LEVEL);
TXT_INVALID_LEVEL);
break; break;
case SETTING_TYPE_SIZE: case SETTING_TYPE_SIZE:
if (!settings_set_size(key, clear ? "0" : if (!settings_set_size(key, clear ? "0" :
set_default ? rec->default_value.v_string : value)) set_default ? rec->default_value.v_string : value))
printformat(NULL, NULL, MSGLEVEL_CLIENTERROR, printformat(NULL, NULL, MSGLEVEL_CLIENTERROR, TXT_INVALID_SIZE);
TXT_INVALID_SIZE); break;
case SETTING_TYPE_ANY:
/* Unpossible! */
break; break;
} }
signal_emit("setup changed", 0); signal_emit("setup changed", 0);
printformat(NULL, NULL, MSGLEVEL_CLIENTCRAP, printformat(NULL, NULL, MSGLEVEL_CLIENTCRAP, TXT_SET_TITLE, rec->section);
TXT_SET_TITLE, rec->section);
set_print(rec); set_print(rec);
} else } else
printformat(NULL, NULL, MSGLEVEL_CLIENTERROR, printformat(NULL, NULL, MSGLEVEL_CLIENTERROR, TXT_SET_UNKNOWN, key);
TXT_SET_UNKNOWN, key);
} }
cmd_params_free(free_arg); cmd_params_free(free_arg);
@ -187,10 +185,11 @@ static void cmd_toggle(const char *data)
if (!cmd_get_params(data, &free_arg, 2 | PARAM_FLAG_GETREST, &key, &value)) if (!cmd_get_params(data, &free_arg, 2 | PARAM_FLAG_GETREST, &key, &value))
return; 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); type = settings_get_type(key);
if (type == -1) if (type == SETTING_TYPE_ANY)
printformat(NULL, NULL, MSGLEVEL_CLIENTERROR, TXT_SET_UNKNOWN, key); printformat(NULL, NULL, MSGLEVEL_CLIENTERROR, TXT_SET_UNKNOWN, key);
else if (type != SETTING_TYPE_BOOLEAN) else if (type != SETTING_TYPE_BOOLEAN)
printformat(NULL, NULL, MSGLEVEL_CLIENTERROR, TXT_SET_NOT_BOOLEAN, key); printformat(NULL, NULL, MSGLEVEL_CLIENTERROR, TXT_SET_NOT_BOOLEAN, key);