summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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;