48 lines
1.4 KiB
Diff
48 lines
1.4 KiB
Diff
|
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
|
||
|
|