about summary refs log tree commit diff
path: root/Src
diff options
context:
space:
mode:
authorPeter Stephenson <p.w.stephenson@ntlworld.com>2019-04-25 20:29:54 +0100
committerPeter Stephenson <p.w.stephenson@ntlworld.com>2019-04-25 20:29:54 +0100
commitca456fbba33d00a12bcec06589a08a4e9a081afd (patch)
treea5e8390d161759fd5d4c9b3b1e14e5d87d4d38aa /Src
parentd4972af12c29bded4706464dbae3458e5a425d00 (diff)
downloadzsh-ca456fbba33d00a12bcec06589a08a4e9a081afd.tar.gz
zsh-ca456fbba33d00a12bcec06589a08a4e9a081afd.tar.xz
zsh-ca456fbba33d00a12bcec06589a08a4e9a081afd.zip
44284: Mark SIGQUIT as ignore if ignored on entry to shell.
This prevents us from re-enabling it after a fork if it is being
ignored.
Diffstat (limited to 'Src')
-rw-r--r--Src/init.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/Src/init.c b/Src/init.c
index e7e62e2f7..2d5c3296d 100644
--- a/Src/init.c
+++ b/Src/init.c
@@ -1234,6 +1234,15 @@ init_signals(void)
 
     intr();
 
+#ifdef POSIX_SIGNALS
+    {
+	struct sigaction act;
+	if (!sigaction(SIGQUIT, NULL, &act) &&
+	    act.sa_handler == SIG_IGN)
+	    sigtrapped[SIGQUIT] = ZSIG_IGNORED;
+    }
+#endif
+
 #ifndef QDEBUG
     signal_ignore(SIGQUIT);
 #endif