diff options
Diffstat (limited to 'src/cmd/rc/sys.c')
-rw-r--r-- | src/cmd/rc/sys.c | 32 |
1 files changed, 16 insertions, 16 deletions
diff --git a/src/cmd/rc/sys.c b/src/cmd/rc/sys.c index 807359d..a845122 100644 --- a/src/cmd/rc/sys.c +++ b/src/cmd/rc/sys.c @@ -94,24 +94,24 @@ execute(Word *cmd, Word *path) void redirect(Redir *r) { - if(r){ - redirect(r->link); - switch(r->type){ - case Ropen: - if(r->from != r->to){ - dup2(r->from, r->to); - close(r->from); - } - break; - case Rdupfd: - dup2(r->from, r->to); // TODO: error checking - break; - case Rclose: + if(!r) return; + redirect(r->link); + + switch(r->type){ + case Ropen: + if(r->from != r->to){ + dup2(r->from, r->to); close(r->from); - break; - default: - fatal("unrecognized redirection type %d\n", r->type); } + break; + case Rdup: + dup2(r->from, r->to); // TODO: error checking + break; + case Rclose: + close(r->from); + break; + default: + fatal("unrecognized redirection type %d\n", r->type); } } |