diff --git a/channels/chan_zap.c b/channels/chan_zap.c index adc6217c92bf7efb17ec453b7d7434781f0582c6..3f933df3f78a3413487e26fede6ba15b61b936de 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)