Fix bug that caused block level io redirection to break on while loops

darcs-hash:20060514222905-ac50b-7dec0ed716f5fe6af9069b597eee464829a8d820.gz
This commit is contained in:
axel
2006-05-15 08:29:05 +10:00
parent 3d601bd751
commit 5a7a264b96
5 changed files with 17 additions and 15 deletions

7
exec.c
View File

@@ -564,7 +564,7 @@ static void internal_exec_helper( const wchar_t *def,
io_data_t *io_internal = io_transmogrify( io );
int is_block_old=is_block;
is_block=1;
/*
Did the transmogrification fail - if so, set error status and return
*/
@@ -575,7 +575,7 @@ static void internal_exec_helper( const wchar_t *def,
}
signal_unblock();
eval( def, io_internal, block_type );
signal_block();
@@ -837,7 +837,7 @@ void exec( job_t *j )
io_buffer = io_buffer_create();
j->io = io_add( j->io, io_buffer );
}
internal_exec_helper( p->argv[0], TOP, j->io );
break;
@@ -852,6 +852,7 @@ void exec( job_t *j )
if( p == j->first_process )
{
io_data_t *in = io_get( j->io, 0 );
if( in )
{
switch( in->io_mode )