1
0
mirror of git://git.code.sf.net/p/zsh/code synced 2024-11-19 21:44:11 +01:00

allow multiple lines in option completion lists to share the same description, for (hopefully) cleaner displays (17212)

This commit is contained in:
Sven Wischnowsky 2002-05-23 12:15:03 +00:00
parent c08e0636e8
commit d786ca4438
2 changed files with 27 additions and 2 deletions

@ -1,3 +1,9 @@
2002-05-23 Sven Wischnowsky <wischnow@zsh.org>
* 17212: Src/Zle/computil.c: allow multiple lines in option
completion lists to share the same description, for (hopefully)
cleaner displays
2002-05-23 Clint Adams <clint@zsh.org>
* Matt Zimmerman: 17211: Completion/Unix/Command/_cvs:

@ -260,8 +260,6 @@ cd_prep()
*strp++ = gs;
}
qsort(grps, lines, sizeof(Cdstr), cd_sort);
cd_state.gpre = 0;
for (i = 0; i < cd_state.maxg; i++)
cd_state.gpre += wids[i] + 2;
@ -269,6 +267,23 @@ cd_prep()
if (cd_state.gpre > cd_state.maxmlen && cd_state.maxglen > 1)
return 1;
qsort(grps, lines, sizeof(Cdstr), cd_sort);
for (i = lines, strp = grps; i > 1; i--, strp++) {
strp2 = strp + 1;
if (!strcmp((*strp)->desc, (*strp2)->desc))
continue;
for (j = i - 2, strp2++; j > 0; j--, strp2++)
if (!strcmp((*strp)->desc, (*strp2)->desc)) {
Cdstr tmp = *strp2;
memmove(strp + 2, strp + 1,
(strp2 - strp - 1) * sizeof(Cdstr));
*++strp = tmp;
i--;
}
}
expl = (Cdrun) zalloc(sizeof(*run));
expl->type = CRT_EXPL;
expl->strs = grps[0];
@ -666,6 +681,10 @@ cd_get(char **params)
dpys = (char **) zalloc((i + 1) * sizeof(char *));
for (dp = dpys, str = run->strs; str; str = str->run) {
if (str->run && !strcmp(str->desc, str->run->desc)) {
*dp++ = ztrdup("");
continue;
}
memset(dbuf + cd_state.slen, ' ', dlen - 1);
dbuf[dlen + cd_state.slen - 1] = '\0';
strcpy(dbuf, cd_state.sep);