From: Philipp Takacs Date: Wed, 16 Mar 2016 02:06:03 +0000 (+0100) Subject: fork in repl as a tree X-Git-Tag: mmh-0.3~31 X-Git-Url: http://git.marmaro.de/?p=mmh;a=commitdiff_plain;h=b16c039dc21faa0d68a0ba45eab857895e82439b;ds=sidebyside fork in repl as a tree This fix the bug in the last improvement (pipe mail through show). In the first patch repl only waits for one child, now the tree causes that both childs finished befor repl continues. --- diff --git a/uip/repl.c b/uip/repl.c index 9006dec..8a40543 100644 --- a/uip/repl.c +++ b/uip/repl.c @@ -703,7 +703,6 @@ replfilter(FILE *in, FILE *out, char *filter) { int pid, pid_show, n; int mailpipe[2]; - char *errstr; if (filter == NULL) return; @@ -714,51 +713,51 @@ replfilter(FILE *in, FILE *out, char *filter) rewind(in); lseek(fileno(in), (off_t) 0, SEEK_SET); - if (pipe(mailpipe) == -1) { - adios(EX_OSERR, "pipe", "can't create pipe"); - } - - switch (pid_show = fork()) { - case NOTOK: - adios(EX_OSERR, "fork", "unable to"); - - case OK: - dup2(fileno(in), fileno(stdin)); - dup2(mailpipe[1], fileno(stdout)); - for (n=3; n