summaryrefslogtreecommitdiff
path: root/sig.c
diff options
context:
space:
mode:
Diffstat (limited to 'sig.c')
-rw-r--r--sig.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/sig.c b/sig.c
index 21a57ae1..465535b7 100644
--- a/sig.c
+++ b/sig.c
@@ -51,6 +51,7 @@
#endif
extern int last_command_exit_value;
+extern int last_command_exit_signal;
extern int return_catch_flag;
extern int loop_level, continuing, breaking;
extern int parse_and_execute_level, shell_initialized;
@@ -343,6 +344,8 @@ throw_to_top_level ()
if (interrupt_state)
return;
+ last_command_exit_signal = (last_command_exit_value > 128) ?
+ (last_command_exit_value - 128) : 0;
last_command_exit_value |= 128;
/* Run any traps set on SIGINT. */