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
		
			
				
	
	
		
			39 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			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);
 |