diff options
| author | Toby Goodwin <tjg@star.le.ac.uk> | 2001-10-12 10:25:58 +0100 |
|---|---|---|
| committer | Toby Goodwin <toby@paccrat.org> | 2015-05-16 21:22:10 +0100 |
| commit | 609a278bf6e301ea9a021793de314ddcadb806ba (patch) | |
| tree | f8dac56d9eccbc46d5105d0206fe607ace82c3a8 /tree.c | |
| parent | 14106ccc3b2cb03c8b9a1df1a1b3e3953aaee2f8 (diff) | |
beta: rc-1.6b3
Diffstat (limited to 'tree.c')
| -rw-r--r-- | tree.c | 9 |
1 files changed, 5 insertions, 4 deletions
@@ -18,10 +18,11 @@ extern Node *mk(int /*nodetype*/ t,...) { n->u[1].i = va_arg(ap, int); n->u[2].i = va_arg(ap, int); break; - case nWord: case nQword: - n = nalloc(offsetof(Node, u[2])); + case nWord: + n = nalloc(offsetof(Node, u[3])); n->u[0].s = va_arg(ap, char *); n->u[1].s = va_arg(ap, char *); + n->u[2].i = va_arg(ap, int); break; case nBang: case nNowait: case nCount: case nFlat: case nRmfn: case nSubshell: @@ -79,7 +80,7 @@ extern Node *treecpy(Node *s, void *(*alloc)(size_t)) { n->u[1].i = s->u[1].i; n->u[2].i = s->u[2].i; break; - case nWord: case nQword: + case nWord: n = (*alloc)(offsetof(Node, u[2])); n->u[0].s = strcpy((char *) (*alloc)(strlen(s->u[0].s) + 1), s->u[0].s); if (s->u[1].s != NULL) { @@ -138,7 +139,7 @@ extern void treefree(Node *s) { /* NOTREACHED */ case nDup: break; - case nWord: case nQword: + case nWord: efree(s->u[0].s); efree(s->u[1].s); break; |