diff options
author | Kevin Harwell <kharwell@digium.com> | 2018-03-29 15:06:45 -0500 |
---|---|---|
committer | Gerrit Code Review <gerrit2@gerrit.digium.api> | 2018-03-29 15:06:45 -0500 |
commit | d8a2ced3ad4c2484cb3146696ea6a7b8b36102ae (patch) | |
tree | 305d67a80b3d0be4a286b8ed316f52ba407c7460 | |
parent | 849089cba875441ad5805c2890140d2277cf7249 (diff) | |
parent | 318bf45928a0ddd7d786a6d73676dbb6b2bfb30c (diff) |
Merge "main/indications: Use ast_cli_completion_add for all completions."
-rw-r--r-- | main/indications.c | 33 |
1 files changed, 16 insertions, 17 deletions
diff --git a/main/indications.c b/main/indications.c index 9b0976809..c9f02416f 100644 --- a/main/indications.c +++ b/main/indications.c @@ -632,9 +632,7 @@ static struct ast_tone_zone *ast_tone_zone_alloc(void) static char *complete_country(struct ast_cli_args *a) { - char *res = NULL; struct ao2_iterator i; - int which = 0; size_t wordlen; struct ast_tone_zone *tz; @@ -642,17 +640,17 @@ static char *complete_country(struct ast_cli_args *a) i = ao2_iterator_init(ast_tone_zones, 0); while ((tz = ao2_iterator_next(&i))) { - if (!strncasecmp(a->word, tz->country, wordlen) && ++which > a->n) { - res = ast_strdup(tz->country); - } - tz = ast_tone_zone_unref(tz); - if (res) { - break; + if (!strncasecmp(a->word, tz->country, wordlen)) { + if (ast_cli_completion_add(ast_strdup(tz->country))) { + ast_tone_zone_unref(tz); + break; + } } + ast_tone_zone_unref(tz); } ao2_iterator_destroy(&i); - return res; + return NULL; } static char *handle_cli_indication_add(struct ast_cli_entry *e, int cmd, struct ast_cli_args *a) @@ -718,17 +716,17 @@ static char *handle_cli_indication_add(struct ast_cli_entry *e, int cmd, struct static char *complete_indications(struct ast_cli_args *a) { - char *res = NULL; - int which = 0; size_t wordlen; struct ast_tone_zone_sound *ts; - struct ast_tone_zone *tz, tmp_tz = { + struct ast_tone_zone *tz; + struct ast_tone_zone tmp_tz = { .nrringcadence = 0, }; ast_copy_string(tmp_tz.country, a->argv[a->pos - 1], sizeof(tmp_tz.country)); - if (!(tz = ao2_find(ast_tone_zones, &tmp_tz, OBJ_POINTER))) { + tz = ao2_find(ast_tone_zones, &tmp_tz, OBJ_POINTER); + if (!tz) { return NULL; } @@ -736,16 +734,17 @@ static char *complete_indications(struct ast_cli_args *a) ast_tone_zone_lock(tz); AST_LIST_TRAVERSE(&tz->tones, ts, entry) { - if (!strncasecmp(a->word, ts->name, wordlen) && ++which > a->n) { - res = ast_strdup(ts->name); - break; + if (!strncasecmp(a->word, ts->name, wordlen)) { + if (ast_cli_completion_add(ast_strdup(ts->name))) { + break; + } } } ast_tone_zone_unlock(tz); tz = ast_tone_zone_unref(tz); - return res; + return NULL; } static char *handle_cli_indication_remove(struct ast_cli_entry *e, int cmd, struct ast_cli_args *a) |