From 8c29b34032ebb714d2c593286aa29e5c64be55ab Mon Sep 17 00:00:00 2001 From: Oliver Kiddle Date: Mon, 7 Mar 2016 13:15:40 +0100 Subject: 38043: allow any completion widget to cycle matches for menu completion to fix reverse menu completion --- ChangeLog | 6 ++++++ Src/Zle/compcore.c | 8 +------- Src/Zle/complist.c | 2 +- Src/Zle/zle_tricky.c | 3 +-- 4 files changed, 9 insertions(+), 10 deletions(-) diff --git a/ChangeLog b/ChangeLog index 420eb261d..f3af39aab 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2016-03-07 Oliver Kiddle + + * 38043: Src/Zle/compcore.c, Src/Zle/complist.c, + Src/Zle/zle_tricky.c: allow any completion widget to cycle matches + for menu completion to fix reverse menu completion + 2016-03-07 Peter Stephenson * 38111: Src/parse.c: remove redundant return values from diff --git a/Src/Zle/compcore.c b/Src/Zle/compcore.c index ae3a64074..ae7068fc9 100644 --- a/Src/Zle/compcore.c +++ b/Src/Zle/compcore.c @@ -30,10 +30,6 @@ #include "complete.mdh" #include "compcore.pro" -/* The last completion widget called. */ - -static Widget lastcompwidget; - /* Flags saying what we have to do with the result. */ /**/ @@ -471,8 +467,7 @@ before_complete(UNUSED(Hookdef dummy), int *lst) /* If we are doing a menu-completion... */ - if (minfo.cur && menucmp && *lst != COMP_LIST_EXPAND && - (menucmp != 1 || !compwidget || compwidget == lastcompwidget)) { + if (minfo.cur && menucmp && *lst != COMP_LIST_EXPAND) { do_menucmp(*lst); return 1; } @@ -481,7 +476,6 @@ before_complete(UNUSED(Hookdef dummy), int *lst) onlyexpl = listdat.valid = 0; return 1; } - lastcompwidget = compwidget; /* We may have to reset the cursor to its position after the * * string inserted by the last completion. */ diff --git a/Src/Zle/complist.c b/Src/Zle/complist.c index 162436b55..8aeb6c3b8 100644 --- a/Src/Zle/complist.c +++ b/Src/Zle/complist.c @@ -3399,7 +3399,7 @@ domenuselect(Hookdef dummy, Chdata dat) do_single(*(minfo.cur)); } if (wasnext || broken) { - menucmp = 2; + menucmp = 1; showinglist = ((validlist && !nolist) ? -2 : 0); minfo.asked = 0; if (!noselect) { diff --git a/Src/Zle/zle_tricky.c b/Src/Zle/zle_tricky.c index cc4b7d673..a89b2a376 100644 --- a/Src/Zle/zle_tricky.c +++ b/Src/Zle/zle_tricky.c @@ -100,8 +100,7 @@ mod_export int usemenu, useglob; /**/ mod_export int wouldinstab; -/* != 0 if we are in the middle of a menu completion. May be == 2 to force * - * menu completion even if using different widgets. */ +/* != 0 if we are in the middle of a menu completion. */ /**/ mod_export int menucmp; -- cgit 1.4.1