Skip to content
Snippets Groups Projects
Commit 9c0a2110 authored by Corey Farrell's avatar Corey Farrell
Browse files

CLI: Refactor ast_cli_display_match_list.

* Stop estimating line count, just print until we run out of matches.
* Stop freeing entries, the caller does that anyways.
* Stop calculating / returning numoutput, it was ignored.

Change-Id: I7f92afa8bea92241a95227587367424c8c32a5cb
parent 3abf8dfe
No related branches found
No related tags found
No related merge requests found
......@@ -3071,51 +3071,37 @@ static int ast_el_sort_compare(const void *i1, const void *i2)
return strcasecmp(s1, s2);
}
static int ast_cli_display_match_list(char **matches, int len, int max)
static void ast_cli_display_match_list(char **matches, int len, int max)
{
int i, idx, limit, count;
int screenwidth = 0;
int numoutput = 0, numoutputline = 0;
screenwidth = ast_get_termcols(STDOUT_FILENO);
int idx = 1;
/* find out how many entries can be put on one line, with two spaces between strings */
limit = screenwidth / (max + 2);
if (limit == 0)
limit = 1;
int limit = ast_get_termcols(STDOUT_FILENO) / (max + 2);
/* how many lines of output */
count = len / limit;
if (count * limit < len)
count++;
idx = 1;
if (limit == 0) {
limit = 1;
}
qsort(&matches[0], (size_t)(len), sizeof(char *), ast_el_sort_compare);
for (; count > 0; count--) {
numoutputline = 0;
for (i = 0; i < limit && matches[idx]; i++, idx++) {
for (;;) {
int numoutputline;
for (numoutputline = 0; numoutputline < limit && matches[idx]; idx++) {
/* Don't print dupes */
if ( (matches[idx+1] != NULL && strcmp(matches[idx], matches[idx+1]) == 0 ) ) {
i--;
ast_free(matches[idx]);
matches[idx] = NULL;
continue;
}
numoutput++;
numoutputline++;
fprintf(stdout, "%-*s ", max, matches[idx]);
ast_free(matches[idx]);
matches[idx] = NULL;
}
if (numoutputline > 0)
fprintf(stdout, "\n");
}
return numoutput;
if (!numoutputline) {
break;
}
fprintf(stdout, "\n");
}
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment