diff options
author | Sven Wischnowsky <wischnow@users.sourceforge.net> | 2000-05-11 08:40:09 +0000 |
---|---|---|
committer | Sven Wischnowsky <wischnow@users.sourceforge.net> | 2000-05-11 08:40:09 +0000 |
commit | d3620a02dfad71562320a90315175855b44ed4de (patch) | |
tree | a664abfb6e766b8c6a87f76b3c42e6221372506f /Src/Zle/compcore.c | |
parent | ed8b82b9b1bf74392caf4f4683f367bc4cbbd193 (diff) | |
download | zsh-d3620a02dfad71562320a90315175855b44ed4de.tar.gz zsh-d3620a02dfad71562320a90315175855b44ed4de.tar.xz zsh-d3620a02dfad71562320a90315175855b44ed4de.zip |
make ^G in menu-selection restore the old command line; add select=long* values for menu style to start menu-selection if list is too long for screen (11319)
Diffstat (limited to 'Src/Zle/compcore.c')
-rw-r--r-- | Src/Zle/compcore.c | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/Src/Zle/compcore.c b/Src/Zle/compcore.c index 941023769..ee218e132 100644 --- a/Src/Zle/compcore.c +++ b/Src/Zle/compcore.c @@ -499,12 +499,22 @@ after_complete(Hookdef dummy, Compldat dat) { if (menucmp && !oldmenucmp) { struct chdata dat; + int ret; dat.matches = amatches; dat.num = nmatches; dat.cur = NULL; - if (runhookdef(MENUSTARTHOOK, (void *) &dat)) + if ((ret = runhookdef(MENUSTARTHOOK, (void *) &dat))) { menucmp = menuacc = 0; + if (ret == 2) { + cs = 0; + foredel(ll); + inststr(origline); + cs = origcs; + clearlist = 1; + invalidatelist(); + } + } } return 0; } |