[prev in list] [next in list] [prev in thread] [next in thread]
List: busybox
Subject: [PATCH 2/2] ash: avoid creating multiple localvars entries for mutliple 'local -'s
From: Eugene Rudoy <gene.devel () gmail ! com>
Date: 2015-04-26 21:32:01
Message-ID: 1430083921-26054-2-git-send-email-gene.devel () gmail ! com
[Download RAW message or body]
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.devel@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
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic