diff options
author | Nicholas Noll <nbnoll@eml.cc> | 2021-11-16 14:46:55 -0800 |
---|---|---|
committer | Nicholas Noll <nbnoll@eml.cc> | 2021-11-16 14:46:55 -0800 |
commit | e923adef5df8077259ed9973a4bffb0e08999fbe (patch) | |
tree | 60b7bf91db2d6eb54e3777f395419d23369842b6 /src/cmd/rc/tree.c | |
parent | 29138fff8643194ec49cb79304d2a878d46c378b (diff) |
chore: integrated redir code
Diffstat (limited to 'src/cmd/rc/tree.c')
-rw-r--r-- | src/cmd/rc/tree.c | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/src/cmd/rc/tree.c b/src/cmd/rc/tree.c index 3703a25..3b7aeb8 100644 --- a/src/cmd/rc/tree.c +++ b/src/cmd/rc/tree.c @@ -78,6 +78,25 @@ hangchild3(Tree *node, Tree *c0, Tree *c1, Tree *c2) return node; } +/* + * add a Tbasic node. + * percolate all the redirections up to the root + */ +Tree* +basictree(Tree *cmd) +{ + Tree *c; + cmd = maketree1(Tbasic, cmd); + for(c=cmd->child[0]; c->type==Targs; c = c->child[0]){ + if(c->child[1]->type == Tdup || c->child[1]->type == Tredir){ + c->child[1]->child[1] = cmd; + cmd = c->child[1]; + c->child[1] = nil; + } + } + return cmd; +} + Tree* hangepilog(Tree *cmd, Tree *epi) { |