summaryrefslogtreecommitdiff
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
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
-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;