File bash-3.2-sigrestart.patch of Package bash

--- jobs.c
+++ jobs.c	2008-01-08 18:10:15.575513000 +0000
@@ -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;
--- sig.c
+++ sig.c	2008-04-02 10:42:23.742406622 +0000
@@ -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);