diff --git a/cli.c b/cli.c index 0c5e840884..4914722310 100644 --- a/cli.c +++ b/cli.c @@ -1313,7 +1313,7 @@ static char *__ast_cli_generator(const char *text, const char *word, int state, int matchnum=0; char *ret = NULL; char matchstr[80] = ""; - int tws; + int tws = 0; char *dup = parse_args(text, &x, argv, sizeof(argv) / sizeof(argv[0]), &tws); if (!dup) /* error */ @@ -1321,9 +1321,12 @@ static char *__ast_cli_generator(const char *text, const char *word, int state, argindex = (!ast_strlen_zero(word) && x>0) ? x-1 : x; /* rebuild the command, ignore tws */ ast_join(matchstr, sizeof(matchstr)-1, argv); - if (tws) - strcat(matchstr, " "); /* XXX */ matchlen = strlen(matchstr); + if (tws) { + strcat(matchstr, " "); /* XXX */ + if (matchlen) + matchlen++; + } if (lock) AST_LIST_LOCK(&helpers); while( !ret && (e = cli_next(&i)) ) { diff --git a/pbx.c b/pbx.c index 1a5f6f4c44..d1e202866a 100644 --- a/pbx.c +++ b/pbx.c @@ -2864,8 +2864,10 @@ static char *complete_show_application(const char *line, const char *word, int p /* return the n-th [partial] matching entry */ AST_LIST_LOCK(&apps); AST_LIST_TRAVERSE(&apps, a, list) { - if (!strncasecmp(word, a->name, wordlen) && ++which > state) + if (!strncasecmp(word, a->name, wordlen) && ++which > state) { ret = strdup(a->name); + break; + } } AST_LIST_UNLOCK(&apps);