X-Git-Url: https://git.rohieb.name/openwrt.git/blobdiff_plain/6bcf219d4f447db3a468af44a3a50435f27bc0a2..feaf88f721ae706a43e144f7b7975d915aad4d7e:/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..9c23920b8 100644 --- a/package/busybox/patches/250-ash_export-n.patch +++ b/package/busybox/patches/250-ash_export-n.patch @@ -1,35 +1,34 @@ ---- 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 @@ +--- a/shell/ash.c ++++ b/shell/ash.c +@@ -12429,8 +12429,17 @@ exportcmd(int argc UNUSED_PARAM, char ** const char *p; char **aptr; - int flag = argv[0][0] == 'r'? VREADONLY : VEXPORT; + int flag = argv[0][0] == 'r' ? VREADONLY : VEXPORT; + int mask = ~0; - int notp; - -- notp = nextopt("p") - 'p'; -+ while ((notp = nextopt("np"))) { -+ if (notp == 'n') { ++ int nopt; ++ 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 (nextopt("p") != 'p') { ++ if (nopt != 'p') { + aptr = argptr; + name = *aptr; + if (name) { +@@ -12442,10 +12451,12 @@ exportcmd(int argc UNUSED_PARAM, char ** + 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; + }