summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJenkins2 <jenkins2@gerrit.asterisk.org>2018-03-20 08:20:54 -0500
committerGerrit Code Review <gerrit2@gerrit.digium.api>2018-03-20 08:20:54 -0500
commit716e2d46e7b8c4cd6787a51e8591cfb977ffbe7c (patch)
tree6a0e40b15f62a94cda1cdc9d42813dba9cc25cf6
parentbf9631ea0b5efa1e6693811f74d0404794cc7054 (diff)
parent3ad56aa92941c896e0acacb343eead2634c933b8 (diff)
Merge "main/config: Use ast_cli_completion_add for reload completion."
-rw-r--r--main/config.c21
1 files changed, 11 insertions, 10 deletions
diff --git a/main/config.c b/main/config.c
index 77bb83925..5adcb2386 100644
--- a/main/config.c
+++ b/main/config.c
@@ -3930,8 +3930,8 @@ static char *handle_cli_core_show_config_mappings(struct ast_cli_entry *e, int c
static char *handle_cli_config_reload(struct ast_cli_entry *e, int cmd, struct ast_cli_args *a)
{
struct cache_file_mtime *cfmtime;
- char *prev = "", *completion_value = NULL;
- int wordlen, which = 0;
+ char *prev = "";
+ int wordlen;
switch (cmd) {
case CLI_INIT:
@@ -3949,19 +3949,20 @@ static char *handle_cli_config_reload(struct ast_cli_entry *e, int cmd, struct a
AST_LIST_LOCK(&cfmtime_head);
AST_LIST_TRAVERSE(&cfmtime_head, cfmtime, list) {
- /* Skip duplicates - this only works because the list is sorted by filename */
- if (strcmp(cfmtime->filename, prev) == 0) {
+ /* Core configs cannot be reloaded */
+ if (ast_strlen_zero(cfmtime->who_asked)) {
continue;
}
- /* Core configs cannot be reloaded */
- if (ast_strlen_zero(cfmtime->who_asked)) {
+ /* Skip duplicates - this only works because the list is sorted by filename */
+ if (!strcmp(cfmtime->filename, prev)) {
continue;
}
- if (++which > a->n && strncmp(cfmtime->filename, a->word, wordlen) == 0) {
- completion_value = ast_strdup(cfmtime->filename);
- break;
+ if (!strncmp(cfmtime->filename, a->word, wordlen)) {
+ if (ast_cli_completion_add(ast_strdup(cfmtime->filename))) {
+ break;
+ }
}
/* Otherwise save that we've seen this filename */
@@ -3969,7 +3970,7 @@ static char *handle_cli_config_reload(struct ast_cli_entry *e, int cmd, struct a
}
AST_LIST_UNLOCK(&cfmtime_head);
- return completion_value;
+ return NULL;
}
if (a->argc != 3) {