follow-up of 0a0acb55db8d7c4dec445573f1b0528d126b9e1f not sure if the code is worth adding it to the repository, multiple 'local -'s are very very unlikely
Signed-off-by: Eugene Rudoy <gene.de...@gmail.com> --- shell/ash.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/shell/ash.c b/shell/ash.c index 3e9997b..7070f5e 100644 --- a/shell/ash.c +++ b/shell/ash.c @@ -8971,6 +8971,7 @@ mklocal(char *name) struct var **vpp; struct var *vp; char *eq = strchr(name, '='); + int lone_dash = LONE_DASH(name); INT_OFF; /* Cater for duplicate "local". Examples: @@ -8979,7 +8980,7 @@ mklocal(char *name) */ lvp = localvars; while (lvp) { - if (lvp->vp && varcmp(lvp->vp->var_text, name) == 0) { + if ((lvp->vp && varcmp(lvp->vp->var_text, name) == 0) || (!lvp->vp && lone_dash)) { if (eq) setvareq(name, 0); /* else: @@ -8991,7 +8992,7 @@ mklocal(char *name) } lvp = ckzalloc(sizeof(*lvp)); - if (LONE_DASH(name)) { + if (lone_dash) { char *p; p = ckmalloc(sizeof(optlist)); lvp->text = memcpy(p, optlist, sizeof(optlist)); -- 2.3.6 _______________________________________________ busybox mailing list busybox@busybox.net http://lists.busybox.net/mailman/listinfo/busybox