rc

[fork] interactive rc shell
Log | Files | Refs | README | LICENSE

commit 361e9b464d51a935364eb00d6a2a9a3a5e57d868
parent 8ce5bc05bcf9b263a65eb6e8d6bae0e610a88b16
Author: tjg <tjg>
Date:   Tue,  2 Oct 2001 09:20:03 +0000

  Bug: it's no longer possible to use parentheses to sneak a word that
  needs quoting past the "quoting detector", so `fn x { echo $(x.y) }'
  now works both in the current rc and its descendants.

Diffstat:
Mglom.c | 3+--
Mwalk.c | 2+-
2 files changed, 2 insertions(+), 3 deletions(-)

diff --git a/glom.c b/glom.c @@ -384,7 +384,7 @@ extern List *glom(Node *n) { words = n->u[0].p; tail = NULL; while (words != NULL && (words->type == nArgs || words->type == nLappend)) { - if (words->u[1].p != NULL && words->u[1].p->type != nWord && words->u[1].p->type != nQword) + if (words->u[1].p != NULL && words->u[1].p->type != nWord) break; head = glom(words->u[1].p); if (head != NULL) { @@ -405,7 +405,6 @@ extern List *glom(Node *n) { qredir(n); return NULL; case nWord: - case nQword: return word(n->u[0].s, n->u[1].s); case nNmpipe: return mkcmdarg(n); diff --git a/walk.c b/walk.c @@ -33,7 +33,7 @@ top: sigchk(); switch (n->type) { case nArgs: case nBackq: case nConcat: case nCount: case nFlat: case nLappend: case nRedir: case nVar: - case nVarsub: case nWord: case nQword: + case nVarsub: case nWord: exec(glob(glom(n)), parent); /* simple command */ break; case nBody: