diff options
author | axel <axel@liljencrantz.se> | 2005-10-15 10:51:26 +1000 |
---|---|---|
committer | axel <axel@liljencrantz.se> | 2005-10-15 10:51:26 +1000 |
commit | 9298f610f6f26425db36d8727ad533d660a6c5d6 (patch) | |
tree | 53c6f257f99c7e35c0975744edf5ca7d4e10818f /parser.c | |
parent | 638df31ca462b032d59bde586254be5f3dc21e35 (diff) |
Add support for specifying event handler for calling job in command supstitution. Add psub shellscript function for process substitution
darcs-hash:20051015005126-ac50b-d2aedca3a50a78362502f3fa9dd8bf25cb7dc6e1.gz
Diffstat (limited to 'parser.c')
-rw-r--r-- | parser.c | 12 |
1 files changed, 8 insertions, 4 deletions
@@ -176,7 +176,8 @@ void parser_push_block( int type ) if( type == TOP || type == SUBST ) new->skip = 0; - + new->job = 0; + new->loop_status=LOOP_NORMAL; current_block = new; @@ -1681,7 +1682,9 @@ static void eval_job( tokenizer *tok ) j->fg=1; j->constructed=0; j->skip_notification = is_subshell || is_block || is_event || (!is_interactive); - + + current_block->job = j; + proc_had_barrier=0; if( is_interactive ) @@ -1733,7 +1736,7 @@ static void eval_job( tokenizer *tok ) p->cmd = wcsdup( j->command ); p->skipped=current_block->skip; } - + skip |= current_block->skip; if(!skip ) @@ -1785,6 +1788,7 @@ static void eval_job( tokenizer *tok ) */ job_free( j ); } + current_block->job = 0; break; } @@ -1889,7 +1893,7 @@ int eval( const wchar_t *cmd, io_data_t *io, int block_type ) exit(1); break; } - + if( (!error_code) && (!exit_status()) && (!proc_get_last_status()) ) { char *h; |