diff options
author | jilles <jilles@FreeBSD.org> | 2011-05-21 22:03:06 +0000 |
---|---|---|
committer | jilles <jilles@FreeBSD.org> | 2011-05-21 22:03:06 +0000 |
commit | 3dd8ae4222dacd974bc67c89db57fbe97d36ed79 (patch) | |
tree | 454723ef27b9a87e895c6adb1d91ac119ce9e994 /bin/sh/eval.c | |
parent | 0ebed84dd0d6e9f4219f1e24043618517c004c3e (diff) | |
download | FreeBSD-src-3dd8ae4222dacd974bc67c89db57fbe97d36ed79.zip FreeBSD-src-3dd8ae4222dacd974bc67c89db57fbe97d36ed79.tar.gz |
sh: Expand aliases after assignments and redirections.
Diffstat (limited to 'bin/sh/eval.c')
-rw-r--r-- | bin/sh/eval.c | 12 |
1 files changed, 3 insertions, 9 deletions
diff --git a/bin/sh/eval.c b/bin/sh/eval.c index b19c24f..a50c53f 100644 --- a/bin/sh/eval.c +++ b/bin/sh/eval.c @@ -714,15 +714,9 @@ evalcommand(union node *cmd, int flags, struct backcmd *backcmd) oexitstatus = exitstatus; exitstatus = 0; for (argp = cmd->ncmd.args ; argp ; argp = argp->narg.next) { - char *p = argp->narg.text; - if (varflag && is_name(*p)) { - do { - p++; - } while (is_in_name(*p)); - if (*p == '=') { - expandarg(argp, &varlist, EXP_VARTILDE); - continue; - } + if (varflag && isassignment(argp->narg.text)) { + expandarg(argp, &varlist, EXP_VARTILDE); + continue; } expandarg(argp, &arglist, EXP_FULL | EXP_TILDE); varflag = 0; |