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

Reply via email to