diff options
-rw-r--r-- | bin/sh/var.c | 6 | ||||
-rw-r--r-- | tools/regression/bin/sh/execution/var-assign1.0 | 3 |
2 files changed, 8 insertions, 1 deletions
diff --git a/bin/sh/var.c b/bin/sh/var.c index 6f4acae..8ff6426 100644 --- a/bin/sh/var.c +++ b/bin/sh/var.c @@ -431,11 +431,15 @@ bltinlookup(const char *name, int doall) { struct strlist *sp; struct var *v; + char *result; + result = NULL; for (sp = cmdenviron ; sp ; sp = sp->next) { if (varequal(sp->text, name)) - return strchr(sp->text, '=') + 1; + result = strchr(sp->text, '=') + 1; } + if (result != NULL) + return result; for (v = *hashvar(name) ; v ; v = v->next) { if (varequal(v->text, name)) { if ((v->flags & VUNSET) diff --git a/tools/regression/bin/sh/execution/var-assign1.0 b/tools/regression/bin/sh/execution/var-assign1.0 new file mode 100644 index 0000000..26e5424 --- /dev/null +++ b/tools/regression/bin/sh/execution/var-assign1.0 @@ -0,0 +1,3 @@ +# $FreeBSD$ + +[ "$(HOME=/etc HOME=/ cd && pwd)" = / ] |