diff options
author | 2006-02-16 23:36:32 +1000 | |
---|---|---|
committer | 2006-02-16 23:36:32 +1000 | |
commit | cc69afc4fec7d5d2918a6ee086cef8e3f03324aa (patch) | |
tree | 60c3fb7f54db0afc593916819973e09cf61c192f /event.c | |
parent | 777a559e1205278d50b80d5f96505b662fe02d24 (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.c | 11 |
1 files changed, 2 insertions, 9 deletions
@@ -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 ); |