aboutsummaryrefslogtreecommitdiff
path: root/sys/cmd/rc/tree.c
diff options
context:
space:
mode:
authorNicholas Noll <nbnoll@eml.cc>2021-10-13 16:46:20 -0700
committerNicholas Noll <nbnoll@eml.cc>2021-10-13 16:46:20 -0700
commit566d54fe549286895fdef8aa9f385686405dd290 (patch)
tree184607f21a2e59f8896a0505fa5597a6976c76ab /sys/cmd/rc/tree.c
parentf2efbb46ef89c7c1693400f7209113c50c959f02 (diff)
RM(rc): old code. too many assumptions baked in
Diffstat (limited to 'sys/cmd/rc/tree.c')
-rw-r--r--sys/cmd/rc/tree.c146
1 files changed, 0 insertions, 146 deletions
diff --git a/sys/cmd/rc/tree.c b/sys/cmd/rc/tree.c
deleted file mode 100644
index 5ab6c5d..0000000
--- a/sys/cmd/rc/tree.c
+++ /dev/null
@@ -1,146 +0,0 @@
-#include "rc.h"
-#include "exec.h"
-#include "io.h"
-#include "fns.h"
-Tree *treenodes;
-/*
- * create and clear a new tree node, and add it
- * to the node list.
- */
-
-Tree*
-newtree(void)
-{
- Tree *t = new(Tree);
- t->iskw = 0;
- t->str = 0;
- t->child[0] = t->child[1] = t->child[2] = 0;
- t->next = treenodes;
- treenodes = t;
- return t;
-}
-
-void
-freenodes(void)
-{
- Tree *t, *u;
- for(t = treenodes;t;t = u){
- u = t->next;
- if(t->str)
- efree(t->str);
- efree((char *)t);
- }
- treenodes = 0;
-}
-
-Tree*
-tree1(int type, Tree *c0)
-{
- return tree3(type, c0, (Tree *)0, (Tree *)0);
-}
-
-Tree*
-tree2(int type, Tree *c0, Tree *c1)
-{
- return tree3(type, c0, c1, (Tree *)0);
-}
-
-Tree*
-tree3(int type, Tree *c0, Tree *c1, Tree *c2)
-{
- Tree *t;
- if(type==';'){
- if(c0==0)
- return c1;
- if(c1==0)
- return c0;
- }
- t = newtree();
- t->type = type;
- t->child[0] = c0;
- t->child[1] = c1;
- t->child[2] = c2;
- return t;
-}
-
-Tree*
-mung1(Tree *t, Tree *c0)
-{
- t->child[0] = c0;
- return t;
-}
-
-Tree*
-mung2(Tree *t, Tree *c0, Tree *c1)
-{
- t->child[0] = c0;
- t->child[1] = c1;
- return t;
-}
-
-Tree*
-mung3(Tree *t, Tree *c0, Tree *c1, Tree *c2)
-{
- t->child[0] = c0;
- t->child[1] = c1;
- t->child[2] = c2;
- return t;
-}
-
-Tree*
-epimung(Tree *comp, Tree *epi)
-{
- Tree *p;
- if(epi==0)
- return comp;
- for(p = epi;p->child[1];p = p->child[1]);
- p->child[1] = comp;
- return epi;
-}
-/*
- * Add a SIMPLE node at the root of t and percolate all the redirections
- * up to the root.
- */
-
-Tree*
-simplemung(Tree *t)
-{
- Tree *u;
- struct Io *s;
- t = tree1(SIMPLE, t);
- s = openstr();
- pfmt(s, "%t", t);
- t->str = strdup(s->strp);
- closeio(s);
- for(u = t->child[0];u->type==ARGLIST;u = u->child[0]){
- if(u->child[1]->type==DUP
- || u->child[1]->type==REDIR){
- u->child[1]->child[1] = t;
- t = u->child[1];
- u->child[1] = 0;
- }
- }
- return t;
-}
-
-Tree*
-token(char *str, int type)
-{
- Tree *t = newtree();
- t->type = type;
- t->str = strdup(str);
- return t;
-}
-
-void
-freetree(Tree *p)
-{
- if(p==0)
- return;
- freetree(p->child[0]);
- freetree(p->child[1]);
- freetree(p->child[2]);
- if(p->str)
- efree(p->str);
- efree((char *)p);
-}