summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBarton E. Schaefer <schaefer@zsh.org>2016-10-03 09:40:39 -0700
committerBarton E. Schaefer <schaefer@zsh.org>2016-10-03 09:40:39 -0700
commitccc0b6f8a625357cbae9dfd4a685b9323e09c13f (patch)
treea83299ca9e8d4e3b52663cc009e22d4e536ded1a
parent4abbb4b4739598c50973593d2787696116e49fcf (diff)
downloadzsh-ccc0b6f8a625357cbae9dfd4a685b9323e09c13f.tar.gz
zsh-ccc0b6f8a625357cbae9dfd4a685b9323e09c13f.zip
39550: reset signal queue in recursiveedit()
-rw-r--r--ChangeLog2
-rw-r--r--Src/Zle/zle_main.c6
2 files changed, 8 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index a7dfa2e3c..125121037 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,7 @@
2016-10-03 Barton E. Schaefer <schaefer@zsh.org>
+ * 39550: Src/Zle/zle_main.c: reset signal queue in recursiveedit()
+
* 39548: Src/signals.c, Src/signals.h: DEBUG for queueing_enabled
* 39547: Src/Zle/zle_main.c: handle zero delta in calc_timeout()
diff --git a/Src/Zle/zle_main.c b/Src/Zle/zle_main.c
index 4b47d6072..04b93575f 100644
--- a/Src/Zle/zle_main.c
+++ b/Src/Zle/zle_main.c
@@ -1868,11 +1868,17 @@ int
recursiveedit(UNUSED(char **args))
{
int locerror;
+ int q = queue_signal_level();
+
+ /* zlecore() expects to be entered with signal queue disabled */
+ dont_queue_signals();
redrawhook();
zrefresh();
zlecore();
+ restore_queue_signals(q);
+
locerror = errflag ? 1 : 0;
errflag = done = eofsent = 0;