Lines Matching refs:cmds
16 void add_cmdname(struct cmdnames *cmds, const char *name, size_t len)
24 ALLOC_GROW(cmds->names, cmds->cnt + 1, cmds->alloc);
25 cmds->names[cmds->cnt++] = ent;
28 void clean_cmdnames(struct cmdnames *cmds)
32 for (i = 0; i < cmds->cnt; ++i)
33 zfree(&cmds->names[i]);
34 zfree(&cmds->names);
35 cmds->cnt = 0;
36 cmds->alloc = 0;
46 void uniq(struct cmdnames *cmds)
50 if (!cmds->cnt)
53 for (i = 1; i < cmds->cnt; i++) {
54 if (!strcmp(cmds->names[i]->name, cmds->names[i-1]->name))
55 zfree(&cmds->names[i - 1]);
57 for (i = 0, j = 0; i < cmds->cnt; i++) {
58 if (cmds->names[i]) {
62 cmds->names[j++] = cmds->names[i];
65 cmds->cnt = j;
67 cmds->names[j++] = NULL;
70 void exclude_cmds(struct cmdnames *cmds, struct cmdnames *excludes)
76 while (ci < cmds->cnt && ei < excludes->cnt) {
77 cmp = strcmp(cmds->names[ci]->name, excludes->names[ei]->name);
79 cmds->names[cj++] = cmds->names[ci++];
88 while (ci < cmds->cnt)
89 cmds->names[cj++] = cmds->names[ci++];
91 cmds->cnt = cj;
116 static void pretty_print_string_list(struct cmdnames *cmds, int longest)
129 rows = (cmds->cnt + cols - 1) / cols;
138 if (n >= cmds->cnt)
140 if (j == cols-1 || n + rows >= cmds->cnt)
142 printf("%-*s", size, cmds->names[n]->name);
167 static void list_commands_in_dir(struct cmdnames *cmds,
198 add_cmdname(cmds, de->d_name + prefix_len, entlen);