diff --git a/jobs.c b/jobs.c index 37edece..31395fe 100644 --- a/jobs.c +++ b/jobs.c @@ -2244,10 +2244,14 @@ wait_sigint_handler (sig) signal_is_trapped (SIGINT) && ((sigint_handler = trap_to_sighandler (SIGINT)) == trap_handler)) { - interrupt_immediately = 0; trap_handler (SIGINT); /* set pending_traps[SIGINT] */ wait_signal_received = SIGINT; - longjmp (wait_intr_buf, 1); + if (interrupt_immediately) + { + interrupt_immediately = 0; + longjmp (wait_intr_buf, 1); + } + SIGRETURN (0); } ADDINTERRUPT; -- 2.5.5