diff options
Diffstat (limited to 'SOURCES/bash-3.2-sigrestart.patch')
-rw-r--r-- | SOURCES/bash-3.2-sigrestart.patch | 34 |
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); |