X-Git-Url: http://winboard.nl/cgi-bin?p=polyglot.git;a=blobdiff_plain;f=pipex_posix.c;h=3301d959af3a463b778c5a15a16772c7da8959a6;hp=e1f6613b1e6854521e08569242854222ff66f7f2;hb=a9ecc687f7cfb4760cd3170a6cb32261aa2a458e;hpb=de010509fa0e57ba955da6512c714fbff8606af3 diff --git a/pipex_posix.c b/pipex_posix.c index e1f6613..3301d95 100644 --- a/pipex_posix.c +++ b/pipex_posix.c @@ -198,7 +198,9 @@ void pipex_wait_event(pipex_t *pipex[]){ q=pipex; if (val > 0) { while((p=*(q++))!=NULL){ - if (FD_ISSET(p->io->in_fd,set)) io_get_update(p->io); + if (FD_ISSET(p->io->in_fd,set) /*&& !io_line_ready(p->io)*/){ + io_get_update(p->io); + } } } } @@ -302,7 +304,7 @@ char * pipex_get_buffer(pipex_t *pipex){ bool pipex_readln(pipex_t *pipex, char *string){ while (!io_line_ready(pipex->io)) { - io_get_update(pipex->io); + io_get_update(pipex->io); } if (!io_get_line(pipex->io,string,StringSize)) { // EOF string[0]='\0'; @@ -320,8 +322,8 @@ bool pipex_readln(pipex_t *pipex, char *string){ bool pipex_readln_nb(pipex_t *pipex, char *string){ - while(!pipex->io->in_eof && io_peek(pipex->io)){ - io_get_update(pipex->io); + while(!pipex->io->in_eof && !io_line_ready(pipex->io) && io_peek(pipex->io)){ + io_get_update(pipex->io); } if(io_line_ready(pipex->io)){