main/translate: Use ast_cli_completion_add.
authorCorey Farrell <git@cfware.com>
Sat, 17 Mar 2018 07:25:17 +0000 (03:25 -0400)
committerCorey Farrell <git@cfware.com>
Sat, 17 Mar 2018 07:25:17 +0000 (03:25 -0400)
Change-Id: I0e2402660e54d91f74ab0804c62a5b1925577413

main/translate.c

index 226d098..396c552 100644 (file)
@@ -900,9 +900,9 @@ const char *ast_translate_path_to_str(struct ast_trans_pvt *p, struct ast_str **
        return ast_str_buffer(*str);
 }
 
-static char *complete_trans_path_choice(const char *line, const char *word, int pos, int state)
+static char *complete_trans_path_choice(const char *word)
 {
-       int i = 1, which = 0;
+       int i = 1;
        int wordlen = strlen(word);
        struct ast_codec *codec;
 
@@ -912,13 +912,15 @@ static char *complete_trans_path_choice(const char *line, const char *word, int
                        ao2_ref(codec, -1);
                        continue;
                }
-               if (!strncasecmp(word, codec->name, wordlen) && ++which > state) {
-                       char *res = ast_strdup(codec->name);
-                       ao2_ref(codec, -1);
-                       return res;
+               if (!strncasecmp(word, codec->name, wordlen)) {
+                       if (ast_cli_completion_add(ast_strdup(codec->name))) {
+                               ao2_ref(codec, -1);
+                               break;
+                       }
                }
                ao2_ref(codec, -1);
        }
+
        return NULL;
 }
 
@@ -1138,10 +1140,10 @@ static char *handle_cli_core_show_translation(struct ast_cli_entry *e, int cmd,
                return NULL;
        case CLI_GENERATE:
                if (a->pos == 3) {
-                       return ast_cli_complete(a->word, option, a->n);
+                       return ast_cli_complete(a->word, option, -1);
                }
                if (a->pos == 4 && !strcasecmp(a->argv[3], option[1])) {
-                       return complete_trans_path_choice(a->line, a->word, a->pos, a->n);
+                       return complete_trans_path_choice(a->word);
                }
                /* BUGBUG - add tab completion for sample rates */
                return NULL;