X-Git-Url: http://git.rohieb.name/openwrt.git/blobdiff_plain/6bcf219d4f447db3a468af44a3a50435f27bc0a2..a8060f110a2f805e010b940b5a3f3e712d8ea9f3:/package/busybox/patches/250-ash_export-n.patch diff --git a/package/busybox/patches/250-ash_export-n.patch b/package/busybox/patches/250-ash_export-n.patch index 9823afeaf..99f467256 100644 --- a/package/busybox/patches/250-ash_export-n.patch +++ b/package/busybox/patches/250-ash_export-n.patch @@ -1,35 +1,37 @@ ---- 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 @@ +Index: busybox-1.7.2/shell/ash.c +=================================================================== +--- busybox-1.7.2.orig/shell/ash.c 2007-10-30 15:34:59.000000000 -0500 ++++ busybox-1.7.2/shell/ash.c 2007-10-30 15:35:02.000000000 -0500 +@@ -11310,8 +11310,18 @@ const char *p; char **aptr; int flag = argv[0][0] == 'r'? VREADONLY : VEXPORT; + int mask = ~0; - int notp; ++ int nopt; -- notp = nextopt("p") - 'p'; -+ while ((notp = nextopt("np"))) { -+ if (notp == 'n') { +- if (nextopt("p") != 'p') { ++ while ((nopt = nextopt("np"))) { ++ if (nopt == '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; ++ if (nopt != 'p') { + aptr = argptr; + name = *aptr; + if (name) { +@@ -11323,10 +11333,11 @@ + 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); - } else { - showvars(argv[0], flag, 0); +- setvar(name, p, flag); ++ setvar(name, p, flag & mask); + } while ((name = *++aptr) != NULL); + return 0; + }