aboutsummaryrefslogtreecommitdiffhomepage
path: root/signal.c
diff options
context:
space:
mode:
authorGravatar axel <axel@liljencrantz.se>2006-02-16 23:36:32 +1000
committerGravatar axel <axel@liljencrantz.se>2006-02-16 23:36:32 +1000
commitcc69afc4fec7d5d2918a6ee086cef8e3f03324aa (patch)
tree60c3fb7f54db0afc593916819973e09cf61c192f /signal.c
parent777a559e1205278d50b80d5f96505b662fe02d24 (diff)
Fix bug in fish causing occasionally incorrect signal handlers
darcs-hash:20060216133632-ac50b-f24c049830f9c6deca50aca640189ad3f87b630a.gz
Diffstat (limited to 'signal.c')
-rw-r--r--signal.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/signal.c b/signal.c
index dbd3b701..108af53e 100644
--- a/signal.c
+++ b/signal.c
@@ -387,7 +387,6 @@ static void handle_winch( int sig, siginfo_t *info, void *context )
static void handle_int( int sig, siginfo_t *info, void *context )
{
reader_handle_int( sig );
-
default_handler( sig, info, context);
}
@@ -422,6 +421,10 @@ void signal_reset_handlers()
void signal_set_handlers()
{
struct sigaction act;
+
+ if( is_interactive == -1 )
+ return;
+
sigemptyset( & act.sa_mask );
act.sa_flags=SA_SIGINFO;
act.sa_sigaction = &default_handler;
@@ -442,7 +445,7 @@ void signal_set_handlers()
recover.
*/
sigaction( SIGPIPE, &act, 0);
-
+
if( is_interactive )
{
/*