| | 97 | | static void cmd_set(char *data) | | | 98 | | { | | | 99 | | GHashTable *optlist; | | | 100 | | char *key, *value; | | | 101 | | void *free_arg; | | | 102 | | int clear, set_default; | | | 103 | | SETTINGS_REC *rec; | | | 104 | | | | | 105 | | if (!cmd_get_params(data, &free_arg, 2 | PARAM_FLAG_GETREST | PARAM_FLAG_OPTIONS,
| | | 106 | | "set", &optlist, &key, &value)) | | | 107 | | return; | | | 108 | | | | | 109 | | clear = g_hash_table_lookup(optlist, "clear") != NULL;
| | | 110 | | set_default = g_hash_table_lookup(optlist, "default") != NULL;
| | | 111 | | | | | 112 | | if (*key == '\0') | | | 113 | | clear = set_default = FALSE;
| | | 114 | | | | | 115 | | if (!(clear || set_default || *value != '\0')) | | | 116 | | set_print_pattern(key); | | | 117 | | else { | | | 118 | | rec = settings_get_record(key); | | | 119 | | if (rec != NULL) {
| | | 120 | | | | | 121 | | switch (rec->type) { | | | 122 | | case SETTING_TYPE_BOOLEAN: | | | 123 | | if (clear) | | | 124 | | settings_set_bool(key, FALSE);
| | | 125 | | else if (set_default) | | | 126 | | settings_set_bool(key, rec->default_value.v_bool); | | | 127 | | else | | | 128 | | set_boolean(key, value); | | | 129 | | break; | | | 130 | | case SETTING_TYPE_INT: | | | 131 | | if (clear) | | | | | ... | | | 145 | | set_default ? rec->default_value.v_string : value)) | | | 146 | | printformat(NULL, NULL, MSGLEVEL_CLIENTERROR,
| | | 147 | | TXT_INVALID_TIME); | | | 148 | | break; | | | 149 | | case SETTING_TYPE_LEVEL: | | | 150 | | if (!settings_set_level(key, clear ? "" : | | | 151 | | set_default ? rec->default_value.v_string : value)) | | | 152 | | printformat(NULL, NULL, MSGLEVEL_CLIENTERROR,
| | | 153 | | TXT_INVALID_LEVEL); | | | 154 | | break; | | | 155 | | case SETTING_TYPE_SIZE: | | true | 156 | | if (!settings_set_size(key, clear ? "0" : |
|