about summary refs log tree commit diff
diff options
context:
space:
mode:
authorPeter Stephenson <pws@zsh.org>2016-01-15 12:49:42 +0000
committerPeter Stephenson <pws@zsh.org>2016-01-15 12:49:42 +0000
commit1d8b5285226afba4f1ef9030cf862c14b975c284 (patch)
tree0aa8503873ae04dafee2ea521e8bffe76d437bf6
parentda71967273150c318c8cb7dc9fb2c51d11adb827 (diff)
downloadzsh-1d8b5285226afba4f1ef9030cf862c14b975c284.tar.gz
zsh-1d8b5285226afba4f1ef9030cf862c14b975c284.tar.xz
zsh-1d8b5285226afba4f1ef9030cf862c14b975c284.zip
37643: Reset interrupt on key input in menu selection.
We don't need to propagate the interrupt further as the interrupt
causes the key to be empty, which will exit the widget.  We
need to reset the condition as zrefresh() is now more sensitive
to errors since 36416 / 32f5d3d8.
-rw-r--r--ChangeLog3
-rw-r--r--Src/Zle/complist.c6
2 files changed, 9 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index cc7d1fdd4..5ffa7eec2 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,8 @@
 2016-01-15  Peter Stephenson  <p.stephenson@samsung.com>
 
+	* 37643: Src/Zle/complist.c: Reset interrupt after getkeycmd()
+	in menu selection.
+
 	* 37512: Src/params.c: overeager WARN_CREATE_GLOBAL with
 	strftime.
 
diff --git a/Src/Zle/complist.c b/Src/Zle/complist.c
index 29aaee82a..0ccb88505 100644
--- a/Src/Zle/complist.c
+++ b/Src/Zle/complist.c
@@ -2584,6 +2584,12 @@ domenuselect(Hookdef dummy, Chdata dat)
     	if (!do_last_key) {
 	    zmult = 1;
 	    cmd = getkeycmd();
+	    /*
+	     * On interrupt, we'll exit due to cmd being empty.
+	     * Don't propagate the interrupt any further, which
+	     * can screw up redrawing.
+	     */
+	    errflag &= ~ERRFLAG_INT;
 	    if (mtab_been_reallocated) {
 		do_last_key = 1;
 		continue;