diff options
author | Bart Schaefer <barts@users.sourceforge.net> | 2005-10-04 14:27:12 +0000 |
---|---|---|
committer | Bart Schaefer <barts@users.sourceforge.net> | 2005-10-04 14:27:12 +0000 |
commit | 7f3c92059f89ea796ff403b45458621d2d5a7213 (patch) | |
tree | d495ec7194dc5d1cec1f8d7c33c13edc5305ef77 /Src/Zle | |
parent | c1b01cfba2723b720f4c96f3628b575986080a1a (diff) | |
download | zsh-7f3c92059f89ea796ff403b45458621d2d5a7213.tar.gz zsh-7f3c92059f89ea796ff403b45458621d2d5a7213.tar.xz zsh-7f3c92059f89ea796ff403b45458621d2d5a7213.zip |
21821, 21822: fix two infinite loops
Diffstat (limited to 'Src/Zle')
-rw-r--r-- | Src/Zle/complist.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/Src/Zle/complist.c b/Src/Zle/complist.c index a9d57ae43..b13932e24 100644 --- a/Src/Zle/complist.c +++ b/Src/Zle/complist.c @@ -672,7 +672,7 @@ clnicezputs(Listcols colors, char *s, int ml) if (colors) initiscol(colors); - while ((cc = *s)) { + while ((cc = *s++)) { if (colors) doiscol(colors, i++); if (itok(cc)) { @@ -2153,9 +2153,15 @@ domenuselect(Hookdef dummy, Chdata dat) if (y < mlines) mline = y; } + DPUTS(mline < 0, + "BUG: mline < 0 after re-scanning mtab in domenuselect()"); while (mline < mlbeg) - if ((mlbeg -= step) < 0) + if ((mlbeg -= step) < 0) { mlbeg = 0; + /* Crude workaround for BUG above */ + if (mline < 0) + break; + } if (mlbeg && lbeg != mlbeg) { Cmatch **p = mtab + ((mlbeg - 1) * columns), **q; |