• unify ksh_dup2() usage, use bool where appropriate
• apply diff from mirbsdksh-1.11: #ifdef DUP2_BROKEN /* Ultrix systems like to preserve the close-on-exec flag */ ‣ XXX we do #ifdef __ultrix here (imake-style) instead of mirtoconfing it (but does anyone know of any other OS with the same problem? plus we’d see it as we now know the symptoms) • remove ultrix Build.hs warn=' but might work…' in the hope it DOES
This commit is contained in:
6
exec.c
6
exec.c
@ -2,7 +2,7 @@
|
||||
|
||||
#include "sh.h"
|
||||
|
||||
__RCSID("$MirOS: src/bin/mksh/exec.c,v 1.39 2007/10/25 13:27:00 tg Exp $");
|
||||
__RCSID("$MirOS: src/bin/mksh/exec.c,v 1.40 2008/04/01 20:40:21 tg Exp $");
|
||||
|
||||
static int comexec(struct op *, struct tbl *volatile, const char **,
|
||||
int volatile);
|
||||
@ -109,14 +109,14 @@ execute(struct op *volatile t,
|
||||
e->savefd[1] = savefd(1);
|
||||
while (t->type == TPIPE) {
|
||||
openpipe(pv);
|
||||
(void) ksh_dup2(pv[1], 1, false); /* stdout of curr */
|
||||
ksh_dup2(pv[1], 1, false); /* stdout of curr */
|
||||
/* Let exchild() close pv[0] in child
|
||||
* (if this isn't done, commands like
|
||||
* (: ; cat /etc/termcap) | sleep 1
|
||||
* will hang forever).
|
||||
*/
|
||||
exchild(t->left, flags|XPIPEO|XCCLOSE, pv[0]);
|
||||
(void) ksh_dup2(pv[0], 0, false); /* stdin of next */
|
||||
ksh_dup2(pv[0], 0, false); /* stdin of next */
|
||||
closepipe(pv);
|
||||
flags |= XPIPEI;
|
||||
t = t->right;
|
||||
|
Reference in New Issue
Block a user