summaryrefslogtreecommitdiffstats
path: root/SOURCES/bash-3.2-sigrestart.patch
diff options
context:
space:
mode:
Diffstat (limited to 'SOURCES/bash-3.2-sigrestart.patch')
-rw-r--r--SOURCES/bash-3.2-sigrestart.patch34
1 files changed, 34 insertions, 0 deletions
diff --git a/SOURCES/bash-3.2-sigrestart.patch b/SOURCES/bash-3.2-sigrestart.patch
new file mode 100644
index 0000000..92e16b4
--- /dev/null
+++ b/SOURCES/bash-3.2-sigrestart.patch
@@ -0,0 +1,34 @@
+--- jobs.c
++++ jobs.c 2008-01-08 19:10:15.575513000 +0100
+@@ -2344,7 +2344,11 @@ wait_for (pid)
+ act.sa_handler = SIG_DFL;
+ sigemptyset (&act.sa_mask);
+ sigemptyset (&oact.sa_mask);
++# if defined(MUST_REINSTALL_SIGHANDLERS)
+ act.sa_flags = 0;
++# else
++ act.sa_flags = SA_RESTART;
++# endif
+ sigaction (SIGCHLD, &act, &oact);
+ # endif
+ queue_sigchld = 1;
+--- sig.c
++++ sig.c 2008-04-02 12:42:23.742406622 +0200
+@@ -586,6 +586,17 @@ set_signal_handler (sig, handler)
+ act.sa_flags |= SA_INTERRUPT; /* XXX */
+ else
+ act.sa_flags |= SA_RESTART; /* XXX */
++#else
++# if !defined(MUST_REINSTALL_SIGHANDLERS)
++ if (sig != SIGALRM)
++ act.sa_flags |= SA_RESTART; /* XXX */
++ if (handler == (trap_handler))
++ act.sa_flags |= SA_NODEFER; /* XXX */
++ if (handler == (termsig_sighandler))
++ act.sa_flags |= SA_NODEFER; /* XXX */
++ if (sig == SIGTSTP || sig == SIGTTOU || sig == SIGTTIN || sig == SIGCONT)
++ act.sa_flags |= SA_NODEFER; /* XXX */
++# endif
+ #endif
+ sigemptyset (&act.sa_mask);
+ sigemptyset (&oact.sa_mask);