[prev in list] [next in list] [prev in thread] [next in thread] 

List:       busybox
Subject:    [PATCH 12/19] ash: add "export -n" to ash.
From:       Florian Fainelli <florian () alphacore ! org>
Date:       2012-09-25 12:06:11
Message-ID: 1348574778-31081-13-git-send-email-florian () alphacore ! org
[Download RAW message or body]

From: Mike Baker <mbm@openwrt.org>

Signed-off-by: Mike Baker <mbm@openwrt.org>
---
 shell/ash.c |   13 ++++++++++++-
 1 file changed, 12 insertions(+), 1 deletion(-)

diff --git a/shell/ash.c b/shell/ash.c
index 153bcc0..7ccff51 100644
--- a/shell/ash.c
+++ b/shell/ash.c
@@ -12630,8 +12630,17 @@ exportcmd(int argc UNUSED_PARAM, char **argv)
 	const char *p;
 	char **aptr;
 	int flag = argv[0][0] == 'r' ? VREADONLY : VEXPORT;
+	int mask = ~0;
+	int nopt;
+	while ((nopt = nextopt("np"))) {
+		if (nopt == 'n') {
+				mask = ~flag;
+		} else { /* p */
+			break;
+		}
+	}
 
-	if (nextopt("p") != 'p') {
+	if (nopt != 'p') {
 		aptr = argptr;
 		name = *aptr;
 		if (name) {
@@ -12643,10 +12652,12 @@ exportcmd(int argc UNUSED_PARAM, char **argv)
 					vp = *findvar(hashvar(name), name);
 					if (vp) {
 						vp->flags |= flag;
+						vp->flags &= mask;
 						continue;
 					}
 				}
 				setvar(name, p, flag);
+				setvar(name, p, flag & mask);
 			} while ((name = *++aptr) != NULL);
 			return 0;
 		}
-- 
1.7.9.5

_______________________________________________
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