diff options
author | Sven Wischnowsky <wischnow@users.sourceforge.net> | 2000-05-25 11:33:13 +0000 |
---|---|---|
committer | Sven Wischnowsky <wischnow@users.sourceforge.net> | 2000-05-25 11:33:13 +0000 |
commit | c99a94e365d43983121f1e9ae6c345eaf13ab55a (patch) | |
tree | 1121429030adda7ed50874f45269fa40d246b964 /Src/Zle | |
parent | 5bed7d645b21e01ec89ddb8799c9a8b46385f13f (diff) | |
download | zsh-c99a94e365d43983121f1e9ae6c345eaf13ab55a.tar.gz zsh-c99a94e365d43983121f1e9ae6c345eaf13ab55a.tar.xz zsh-c99a94e365d43983121f1e9ae6c345eaf13ab55a.zip |
better cursor-movement in menu-selection (11569)
Diffstat (limited to 'Src/Zle')
-rw-r--r-- | Src/Zle/complist.c | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/Src/Zle/complist.c b/Src/Zle/complist.c index b6aa78bd7..bbf2b8d4a 100644 --- a/Src/Zle/complist.c +++ b/Src/Zle/complist.c @@ -1949,8 +1949,12 @@ domenuselect(Hookdef dummy, Chdata dat) continue; } while (!*p || *p == mtexpl); - if (wrap == 1) - goto left; + if (wrap == 1) { + if (mcol == wishcol) + goto left; + + wishcol = mcol; + } } else if (cmd == Th(z_emacsforwardword) || cmd == Th(z_viforwardword) || cmd == Th(z_viforwardwordend) || @@ -2104,8 +2108,12 @@ domenuselect(Hookdef dummy, Chdata dat) } while (!*p || *p == mtexpl || (mcol != omcol && *p == *op)); wishcol = mcol; - if (wrap == 2) + if (wrap == 2) { + p += mcols - 1 - mcol; + wishcol = mcol = mcols - 1; + adjust_mcol(wishcol, &p, NULL); goto up; + } } else if (cmd == Th(z_beginningofbufferorhistory) || cmd == Th(z_beginningofline) || cmd == Th(z_beginningoflinehist) || |