summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuigi Rizzo <rizzo@icir.org>2006-03-28 23:20:13 +0000
committerLuigi Rizzo <rizzo@icir.org>2006-03-28 23:20:13 +0000
commitb94f6a6df415836923a7d7abf377021cc9903e03 (patch)
tree613c42124f71ecf84d48db76e931936f9652d7f0
parentfb75d34e7048508f3a14c544c702fea66739cc16 (diff)
normalize/simplify a bit of the command completion code.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@15856 65c4cc65-6c06-0410-ace0-fbb531ad65f3
-rw-r--r--channels/chan_zap.c21
1 files changed, 10 insertions, 11 deletions
diff --git a/channels/chan_zap.c b/channels/chan_zap.c
index adc6217c9..3f933df3f 100644
--- a/channels/chan_zap.c
+++ b/channels/chan_zap.c
@@ -9394,20 +9394,19 @@ static int start_pri(struct zt_pri *pri)
static char *complete_span_helper(const char *line, const char *word, int pos, int state, int rpos)
{
- int span=1;
- char tmp[50];
+ int which, span;
+ char *ret = NULL;
+
if (pos != rpos)
- return 0;
- while(span <= NUM_SPANS) {
- if (span > state && pris[span-1].pri)
+ return ret;
+
+ for (which = span = 0; span < NUM_SPANS; span++) {
+ if (pris[span].pri && ++which > state) {
+ asprintf(&ret, "%d", span + 1); /* user indexes start from 1 */
break;
- span++;
+ }
}
- if (span <= NUM_SPANS) {
- snprintf(tmp, sizeof(tmp), "%d", span);
- return ast_strdup(tmp);
- } else
- return NULL;
+ return ret;
}
static char *complete_span_4(const char *line, const char *word, int pos, int state)