bash-custom-action/bash-3.2-sigrestart.patch
OBS User autobuild de0f1815fa Accepting request 18772 from Base:System
Copy from Base:System/bash based on submit request 18772 from user coolo

OBS-URL: https://build.opensuse.org/request/show/18772
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/bash?expand=0&rev=43
2009-08-28 15:45:57 +00:00

39 lines
1.1 KiB
Diff

Index: jobs.c
===================================================================
--- jobs.c.orig
+++ jobs.c
@@ -2417,7 +2417,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;
Index: sig.c
===================================================================
--- sig.c.orig
+++ sig.c
@@ -654,6 +654,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);