svashisht / rpms / bash

Forked from rpms/bash 6 years ago
Clone
Blob Blame History Raw
From 64447609994bfddeef1061948022c074093e9a9f Mon Sep 17 00:00:00 2001
From: Chet Ramey <chet.ramey@case.edu>
Date: Fri, 1 Jun 2018 10:22:36 -0400
Subject: [PATCH] fix for SIGINT in sourced script

---
 builtins/trap.def | 4 ++++
 patchlevel.h      | 2 +-
 2 files changed, 5 insertions(+), 1 deletion(-)

diff --git a/builtins/trap.def b/builtins/trap.def
index 57d9b522..d43b0ef6 100644
--- a/builtins/trap.def
+++ b/builtins/trap.def
@@ -98,6 +98,7 @@ static int display_traps __P((WORD_LIST *));
 #define IGNORE 2		/* Ignore this signal. */
 
 extern int posixly_correct, subshell_environment;
+extern int sourcelevel, running_trap;
 
 int
 trap_builtin (list)
@@ -212,6 +213,9 @@ trap_builtin (list)
 			   was SIG_IGN? */
 			if (interactive)
 			  set_signal_handler (SIGINT, sigint_sighandler);
+			/* special cases for interactive == 0 */
+			else if (interactive_shell && (sourcelevel||running_trap))
+			  set_signal_handler (SIGINT, sigint_sighandler);
 			else
 			  set_signal_handler (SIGINT, termsig_sighandler);
 			break;
diff --git a/patchlevel.h b/patchlevel.h
index 9be226c3..2060b58f 100644
--- a/patchlevel.h
+++ b/patchlevel.h
@@ -25,6 +25,6 @@
    regexp `^#define[ 	]*PATCHLEVEL', since that's what support/mkversion.sh
    looks for to find the patch level (for the sccs version string). */
 
-#define PATCHLEVEL 22
+#define PATCHLEVEL 23
 
 #endif /* _PATCHLEVEL_H_ */
-- 
2.14.4