summaryrefslogtreecommitdiff
path: root/main/taskprocessor.c
diff options
context:
space:
mode:
Diffstat (limited to 'main/taskprocessor.c')
-rw-r--r--main/taskprocessor.c17
1 files changed, 9 insertions, 8 deletions
diff --git a/main/taskprocessor.c b/main/taskprocessor.c
index cf82efff2..91eb7d993 100644
--- a/main/taskprocessor.c
+++ b/main/taskprocessor.c
@@ -341,26 +341,27 @@ static void *tps_task_free(struct tps_task *task)
static char *tps_taskprocessor_tab_complete(struct ast_cli_args *a)
{
int tklen;
- int wordnum = 0;
struct ast_taskprocessor *p;
- char *name = NULL;
struct ao2_iterator i;
- if (a->pos != 3)
+ if (a->pos != 3) {
return NULL;
+ }
tklen = strlen(a->word);
i = ao2_iterator_init(tps_singletons, 0);
while ((p = ao2_iterator_next(&i))) {
- if (!strncasecmp(a->word, p->name, tklen) && ++wordnum > a->n) {
- name = ast_strdup(p->name);
- ast_taskprocessor_unreference(p);
- break;
+ if (!strncasecmp(a->word, p->name, tklen)) {
+ if (ast_cli_completion_add(ast_strdup(p->name))) {
+ ast_taskprocessor_unreference(p);
+ break;
+ }
}
ast_taskprocessor_unreference(p);
}
ao2_iterator_destroy(&i);
- return name;
+
+ return NULL;
}
/* ping task handling function */