diff options
author | Sven Wischnowsky <wischnow@users.sourceforge.net> | 2002-02-07 08:40:01 +0000 |
---|---|---|
committer | Sven Wischnowsky <wischnow@users.sourceforge.net> | 2002-02-07 08:40:01 +0000 |
commit | 9e0f74f07b3cb95cc6aacc413b1ac1373c5fcf9a (patch) | |
tree | 02048f0013eac3ae5e08f5b3026c2b06a8fe7abd /Src/Zle | |
parent | 0eefb1ec2566bc1d3a6e341820ea1d139530d753 (diff) | |
download | zsh-9e0f74f07b3cb95cc6aacc413b1ac1373c5fcf9a.tar.gz zsh-9e0f74f07b3cb95cc6aacc413b1ac1373c5fcf9a.tar.xz zsh-9e0f74f07b3cb95cc6aacc413b1ac1373c5fcf9a.zip |
fix for displaying matches in groups via _describe; go back to displaying one match per line when lines get too long (16582)
Diffstat (limited to 'Src/Zle')
-rw-r--r-- | Src/Zle/computil.c | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/Src/Zle/computil.c b/Src/Zle/computil.c index 58115f537..ae94bdf57 100644 --- a/Src/Zle/computil.c +++ b/Src/Zle/computil.c @@ -121,7 +121,7 @@ cd_group() { Cdset set1, set2; Cdstr str1, str2, *strp; - int num; + int num, len; for (set1 = cd_state.sets; set1; set1 = set1->next) { for (str1 = set1->strs; str1; str1 = str1->next) { @@ -129,6 +129,7 @@ cd_group() continue; num = 1; + len = str1->len; strp = &(str1->other); for (set2 = set1; set2; set2 = set2->next) @@ -138,10 +139,18 @@ cd_group() str1->kind = 1; str2->kind = 2; num++; + len += str2->len; *strp = str2; strp = &(str2->other); } *strp = NULL; + len += num * 2 + cd_state.slen; + + if (len >= columns) { + cd_state.groups = 0; + + return; + } if (num > 1) cd_state.groups++; else |