summaryrefslogtreecommitdiffstats
path: root/bin/sh/eval.c
diff options
context:
space:
mode:
authorjilles <jilles@FreeBSD.org>2011-05-21 22:03:06 +0000
committerjilles <jilles@FreeBSD.org>2011-05-21 22:03:06 +0000
commit3dd8ae4222dacd974bc67c89db57fbe97d36ed79 (patch)
tree454723ef27b9a87e895c6adb1d91ac119ce9e994 /bin/sh/eval.c
parent0ebed84dd0d6e9f4219f1e24043618517c004c3e (diff)
downloadFreeBSD-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.c12
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;
OpenPOWER on IntegriCloud