summaryrefslogtreecommitdiff
path: root/asterisk.c
diff options
context:
space:
mode:
authorRussell Bryant <russell@russellbryant.com>2005-12-27 17:24:54 +0000
committerRussell Bryant <russell@russellbryant.com>2005-12-27 17:24:54 +0000
commit1f737171889d78806140a343c8ef47a340d18d3e (patch)
tree90e7e4642b2e644803277595b91defbeaeb2a255 /asterisk.c
parent7fae5bb20e9fcfe1386af5ac5e9ac509a3b93d14 (diff)
when doing tab completion, iterate the list of matches to count how many there
are instead of having the list of matches generated twice (issue #6066) git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@7655 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'asterisk.c')
-rw-r--r--asterisk.c11
1 files changed, 6 insertions, 5 deletions
diff --git a/asterisk.c b/asterisk.c
index 54c9405fb..11363c851 100644
--- a/asterisk.c
+++ b/asterisk.c
@@ -1602,12 +1602,13 @@ static char *cli_complete(EditLine *el, int ch)
free(mbuf);
} else
matches = (char **) NULL;
-
-
} else {
-
- nummatches = ast_cli_generatornummatches((char *)lf->buffer,ptr);
+ char **p;
+ int count = 0;
matches = ast_cli_completion_matches((char *)lf->buffer,ptr);
+ for (p = matches; p && *p; p++)
+ count++;
+ nummatches = count - 1; /* XXX apparently there is one dup ? */
}
if (matches) {
@@ -1641,7 +1642,7 @@ static char *cli_complete(EditLine *el, int ch)
retval = CC_REFRESH;
}
}
- free(matches);
+ free(matches);
}
return (char *)(long)retval;