From 29138fff8643194ec49cb79304d2a878d46c378b Mon Sep 17 00:00:00 2001 From: Nicholas Noll Date: Tue, 16 Nov 2021 12:08:59 -0800 Subject: Feat: added heredocs Heredocs are simply strings written to tmp files. There was minimal bug testing here. Also, various bug fixes are included --- src/cmd/rc/sys.c | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) (limited to 'src/cmd/rc/sys.c') 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); } } -- cgit v1.2.1