diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/fe-common/core/completion.c | 17 | ||||
-rw-r--r-- | src/fe-common/core/module-formats.c | 5 | ||||
-rw-r--r-- | src/fe-common/core/module-formats.h | 1 |
3 files changed, 18 insertions, 5 deletions
diff --git a/src/fe-common/core/completion.c b/src/fe-common/core/completion.c index 7c5bbcd9..2298b937 100644 --- a/src/fe-common/core/completion.c +++ b/src/fe-common/core/completion.c @@ -777,16 +777,27 @@ static void cmd_completion(const char *data) return; } - if (*key != '\0' && *value != '\0') { + if (g_hash_table_lookup(optlist, "delete") != NULL && *key != '\0') { + printformat(NULL, NULL, MSGLEVEL_CLIENTNOTICE, + TXT_COMPLETION_REMOVED, key); + + iconfig_set_str("completions", key, NULL); + signal_emit("completion removed", 1, key); + } else if (*key != '\0' && *value != '\0') { int automatic = g_hash_table_lookup(optlist, "auto") != NULL; node = config_node_section(node, key, NODE_TYPE_BLOCK); iconfig_node_set_str(node, "value", value); - iconfig_node_set_bool(node, "auto", automatic); + if (automatic) + iconfig_node_set_bool(node, "auto", TRUE); + else + iconfig_node_set_str(node, "auto", NULL); printformat(NULL, NULL, MSGLEVEL_CLIENTCRAP, TXT_COMPLETION_LINE, key, value, automatic ? "yes" : "no"); + + signal_emit("completion added", 1, key); } else { printformat(NULL, NULL, MSGLEVEL_CLIENTCRAP, TXT_COMPLETION_HEADER); @@ -832,7 +843,7 @@ void completion_init(void) signal_add("complete command rawlog save", (SIGNAL_FUNC) sig_complete_filename); signal_add("complete command help", (SIGNAL_FUNC) sig_complete_command); - command_set_options("completion", "auto"); + command_set_options("completion", "auto delete"); } void completion_deinit(void) diff --git a/src/fe-common/core/module-formats.c b/src/fe-common/core/module-formats.c index 67973072..3d577546 100644 --- a/src/fe-common/core/module-formats.c +++ b/src/fe-common/core/module-formats.c @@ -264,8 +264,9 @@ FORMAT_REC fecommon_core_formats[] = { { "translation_not_found", "Error opening translation table file $0: $1", 2, { 0, 0 } }, { "translation_file_error", "Error parsing translation table file $0", 1, { 0 } }, { "no_completions", "There's no completions", 0 }, - { "completion_header", "Key Value Auto", 0 }, - { "completion_line", "$[10]0 $[!40]1 $2", 3, { 0, 0, 0 } }, + { "completion_removed", "Removed completion $0", 1, { 0 } }, + { "completion_header", "%#Key Value Auto", 0 }, + { "completion_line", "%#$[10]0 $[!40]1 $2", 3, { 0, 0, 0 } }, { "completion_footer", "", 0 }, { NULL, NULL, 0 } diff --git a/src/fe-common/core/module-formats.h b/src/fe-common/core/module-formats.h index 8c7a9870..016f4d29 100644 --- a/src/fe-common/core/module-formats.h +++ b/src/fe-common/core/module-formats.h @@ -230,6 +230,7 @@ enum { TXT_TRANSLATION_NOT_FOUND, TXT_TRANSLATION_FILE_ERROR, TXT_NO_COMPLETIONS, + TXT_COMPLETION_REMOVED, TXT_COMPLETION_HEADER, TXT_COMPLETION_LINE, TXT_COMPLETION_FOOTER |