aboutsummaryrefslogtreecommitdiffhomepage
path: root/event.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 /event.c
parent777a559e1205278d50b80d5f96505b662fe02d24 (diff)
Fix bug in fish causing occasionally incorrect signal handlers
darcs-hash:20060216133632-ac50b-f24c049830f9c6deca50aca640189ad3f87b630a.gz
Diffstat (limited to 'event.c')
-rw-r--r--event.c11
1 files changed, 2 insertions, 9 deletions
diff --git a/event.c b/event.c
index e81eb3ce..d7004ba2 100644
--- a/event.c
+++ b/event.c
@@ -385,8 +385,6 @@ static void event_fire_internal( event_t *event )
int i, j;
string_buffer_t *b=0;
array_list_t *fire=0;
-
- int was_interactive = is_interactive;
/*
First we free all events that have been removed
@@ -462,19 +460,14 @@ static void event_fire_internal( event_t *event )
Event handlers are not part of the main flow of code, so
they are marked as non-interactive and as a subshell
*/
- is_interactive=0;
+ proc_push_interactive(0);
parser_push_block( EVENT );
current_block->param1.event = event;
eval( (wchar_t *)b->buff, 0, TOP );
parser_pop_block();
-
+ proc_pop_interactive();
}
- /*
- Restore interactivity flags
- */
- is_interactive = was_interactive;
-
if( b )
{
sb_destroy( b );