summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog3
-rw-r--r--Src/init.c5
2 files changed, 7 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index ff0eac1c1..49749e417 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,8 @@
2026-05-16 Mikael Magnusson <mikachu@gmail.com>
+ * 54525: Src/init.c: interrupt during redirect to fifo doesn't
+ run precmd
+
* 54569: Src/Zle/complist.c, Src/Zle/termquery.c,
Src/Zle/zle_hist.c, Src/Zle/zle_keymap.c, Src/Zle/zle_main.c,
Src/Zle/zle_misc.c, Src/Zle/zle_move.c, Src/Zle/zle_params.c,
diff --git a/Src/init.c b/Src/init.c
index 7c3b82461..a422036c7 100644
--- a/Src/init.c
+++ b/Src/init.c
@@ -127,7 +127,7 @@ loop(int toplevel, int justonce)
if (isset(SHINSTDIN)) {
setblock_stdin();
if (interact && toplevel) {
- int hstop = stophist;
+ int hstop = stophist, q;
stophist = 3;
/*
* Reset all errors including the interrupt error status
@@ -136,6 +136,9 @@ loop(int toplevel, int justonce)
* precaution to ensure we get back to the command line
* no matter what.
*/
+ q = queue_signal_level();
+ dont_queue_signals();
+ restore_queue_signals(q);
errflag = 0;
preprompt();
if (stophist != 3)