summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCorey Farrell <git@cfware.com>2018-03-17 02:02:06 -0400
committerCorey Farrell <git@cfware.com>2018-03-23 02:28:10 -0400
commit318bf45928a0ddd7d786a6d73676dbb6b2bfb30c (patch)
tree12d385e6e1350dd7df97a61d88d14a0fa84d22d6
parent625d53a1296f4b1d12ed9160f9f7ff2503e389c0 (diff)
main/indications: Use ast_cli_completion_add for all completions.
Change-Id: I371be01f178fb542a9fbe8d97e7ae21aa4d82c36
-rw-r--r--main/indications.c33
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)