aboutsummaryrefslogtreecommitdiffstats
path: root/trap.c
diff options
context:
space:
mode:
authorJari Aalto <jari.aalto@cante.net>1999-02-19 17:11:39 +0000
committerJari Aalto <jari.aalto@cante.net>2009-09-12 16:46:52 +0000
commitb72432fdcc59300c6fe7c9d6c8a31ad3447933f5 (patch)
treeb9899162338c2ff3fd83a8aef8831cb119e85cd7 /trap.c
parentbc4cd23ce958feda898c618215f94d8a4e8f4ffa (diff)
downloadandroid_external_bash-b72432fdcc59300c6fe7c9d6c8a31ad3447933f5.tar.gz
android_external_bash-b72432fdcc59300c6fe7c9d6c8a31ad3447933f5.tar.bz2
android_external_bash-b72432fdcc59300c6fe7c9d6c8a31ad3447933f5.zip
Imported from ../bash-2.03.tar.gz.
Diffstat (limited to 'trap.c')
-rw-r--r--trap.c17
1 files changed, 13 insertions, 4 deletions
diff --git a/trap.c b/trap.c
index ae58b44..7e27f18 100644
--- a/trap.c
+++ b/trap.c
@@ -116,6 +116,11 @@ initialize_traps ()
set_signal_handler (SIGINT, original_signals[SIGINT]);
sigmodes[SIGINT] |= SIG_SPECIAL;
+#if defined (__BEOS__)
+ /* BeOS sets SIGINT to SIG_IGN! */
+ original_signals[SIGINT] = SIG_DFL;
+#endif
+
original_signals[SIGQUIT] =
(SigHandler *) set_signal_handler (SIGQUIT, SIG_DFL);
set_signal_handler (SIGQUIT, original_signals[SIGQUIT]);
@@ -159,10 +164,14 @@ decode_signal (string)
/* A leading `SIG' may be omitted. */
for (sig = 0; sig <= NSIG; sig++)
- if (strcasecmp (string, signal_names[sig]) == 0 ||
- (STREQN (signal_names[sig], "SIG", 3) &&
- strcasecmp (string, &(signal_names[sig])[3]) == 0))
- return ((int)sig);
+ {
+ if (signal_names[sig] == 0 || signal_names[sig][0] == '\0')
+ continue;
+ if (strcasecmp (string, signal_names[sig]) == 0 ||
+ (STREQN (signal_names[sig], "SIG", 3) &&
+ strcasecmp (string, &(signal_names[sig])[3]) == 0))
+ return ((int)sig);
+ }
return (NO_SIG);
}