summaryrefslogtreecommitdiffstats
path: root/package/busybox/patches/250-ash_export-n.patch
diff options
context:
space:
mode:
authormbm <mbm@3c298f89-4303-0410-b956-a3cf2f4a3e73>2006-11-22 20:17:18 +0000
committermbm <mbm@3c298f89-4303-0410-b956-a3cf2f4a3e73>2006-11-22 20:17:18 +0000
commit6bcf219d4f447db3a468af44a3a50435f27bc0a2 (patch)
tree9bee642d987b21d2aa319830d13ab7aa65a511c0 /package/busybox/patches/250-ash_export-n.patch
parent0a85e0db3e064966d3b5b68dd977c52d2724bf23 (diff)
add "export -n" to ash
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@5615 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'package/busybox/patches/250-ash_export-n.patch')
-rw-r--r--package/busybox/patches/250-ash_export-n.patch35
1 files changed, 35 insertions, 0 deletions
diff --git a/package/busybox/patches/250-ash_export-n.patch b/package/busybox/patches/250-ash_export-n.patch
new file mode 100644
index 000000000..9823afeaf
--- /dev/null
+++ b/package/busybox/patches/250-ash_export-n.patch
@@ -0,0 +1,35 @@
+--- busybox.old/shell/ash.c 2006-11-22 12:02:03.000000000 -0800
++++ busybox.dev/shell/ash.c 2006-11-22 11:05:32.000000000 -0800
+@@ -12257,9 +12257,18 @@
+ const char *p;
+ char **aptr;
+ int flag = argv[0][0] == 'r'? VREADONLY : VEXPORT;
++ int mask = ~0;
+ int notp;
+
+- notp = nextopt("p") - 'p';
++ while ((notp = nextopt("np"))) {
++ if (notp == 'n') {
++ mask = ~flag;
++ } else { /* p */
++ break;
++ }
++ }
++
++ notp -= 'p';
+ if (notp && ((name = *(aptr = argptr)))) {
+ do {
+ if ((p = strchr(name, '=')) != NULL) {
+@@ -12267,10 +12276,11 @@
+ } else {
+ if ((vp = *findvar(hashvar(name), name))) {
+ vp->flags |= flag;
++ vp->flags &= mask;
+ continue;
+ }
+ }
+- setvar(name, p, flag);
++ setvar(name, p, flag & mask);
+ } while ((name = *++aptr) != NULL);
+ } else {
+ showvars(argv[0], flag, 0);