Siteshwar Vashisht 009518
From 64447609994bfddeef1061948022c074093e9a9f Mon Sep 17 00:00:00 2001
Siteshwar Vashisht 009518
From: Chet Ramey <chet.ramey@case.edu>
Siteshwar Vashisht 009518
Date: Fri, 1 Jun 2018 10:22:36 -0400
Siteshwar Vashisht 009518
Subject: [PATCH] fix for SIGINT in sourced script
Siteshwar Vashisht 009518
Siteshwar Vashisht 009518
---
Siteshwar Vashisht 009518
 builtins/trap.def | 4 ++++
Siteshwar Vashisht 009518
 patchlevel.h      | 2 +-
Siteshwar Vashisht 009518
 2 files changed, 5 insertions(+), 1 deletion(-)
Siteshwar Vashisht 009518
Siteshwar Vashisht 009518
diff --git a/builtins/trap.def b/builtins/trap.def
Siteshwar Vashisht 009518
index 57d9b522..d43b0ef6 100644
Siteshwar Vashisht 009518
--- a/builtins/trap.def
Siteshwar Vashisht 009518
+++ b/builtins/trap.def
Siteshwar Vashisht 009518
@@ -98,6 +98,7 @@ static int display_traps __P((WORD_LIST *));
Siteshwar Vashisht 009518
 #define IGNORE 2		/* Ignore this signal. */
Siteshwar Vashisht 009518
 
Siteshwar Vashisht 009518
 extern int posixly_correct, subshell_environment;
Siteshwar Vashisht 009518
+extern int sourcelevel, running_trap;
Siteshwar Vashisht 009518
 
Siteshwar Vashisht 009518
 int
Siteshwar Vashisht 009518
 trap_builtin (list)
Siteshwar Vashisht 009518
@@ -212,6 +213,9 @@ trap_builtin (list)
Siteshwar Vashisht 009518
 			   was SIG_IGN? */
Siteshwar Vashisht 009518
 			if (interactive)
Siteshwar Vashisht 009518
 			  set_signal_handler (SIGINT, sigint_sighandler);
Siteshwar Vashisht 009518
+			/* special cases for interactive == 0 */
Siteshwar Vashisht 009518
+			else if (interactive_shell && (sourcelevel||running_trap))
Siteshwar Vashisht 009518
+			  set_signal_handler (SIGINT, sigint_sighandler);
Siteshwar Vashisht 009518
 			else
Siteshwar Vashisht 009518
 			  set_signal_handler (SIGINT, termsig_sighandler);
Siteshwar Vashisht 009518
 			break;
Siteshwar Vashisht 009518
diff --git a/patchlevel.h b/patchlevel.h
Siteshwar Vashisht 009518
index 9be226c3..2060b58f 100644
Siteshwar Vashisht 009518
--- a/patchlevel.h
Siteshwar Vashisht 009518
+++ b/patchlevel.h
Siteshwar Vashisht 009518
@@ -25,6 +25,6 @@
Siteshwar Vashisht 009518
    regexp `^#define[ 	]*PATCHLEVEL', since that's what support/mkversion.sh
Siteshwar Vashisht 009518
    looks for to find the patch level (for the sccs version string). */
Siteshwar Vashisht 009518
 
Siteshwar Vashisht 009518
-#define PATCHLEVEL 22
Siteshwar Vashisht 009518
+#define PATCHLEVEL 23
Siteshwar Vashisht 009518
 
Siteshwar Vashisht 009518
 #endif /* _PATCHLEVEL_H_ */
Siteshwar Vashisht 009518
-- 
Siteshwar Vashisht 009518
2.14.4
Siteshwar Vashisht 009518