X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=package%2Fbusybox%2Fpatches%2F250-ash_export-n.patch;h=50eaa62d0b9312e4e9dae68e7afa4059cd16d84f;hb=9a16485900651090129f6a1ede264702a862c387;hp=b5a8794f5a66e9564f3938fbfaa76c0122d7a14e;hpb=91142205534e135a29ceb3992708bf2ca3219021;p=oweals%2Fopenwrt.git diff --git a/package/busybox/patches/250-ash_export-n.patch b/package/busybox/patches/250-ash_export-n.patch index b5a8794f5a..50eaa62d0b 100644 --- a/package/busybox/patches/250-ash_export-n.patch +++ b/package/busybox/patches/250-ash_export-n.patch @@ -1,37 +1,34 @@ -Index: busybox-1.4.2/shell/ash.c -=================================================================== ---- busybox-1.4.2.orig/shell/ash.c 2007-06-04 13:21:32.248074216 +0200 -+++ busybox-1.4.2/shell/ash.c 2007-06-04 13:21:34.000807760 +0200 -@@ -12237,9 +12237,18 @@ +--- a/shell/ash.c ++++ b/shell/ash.c +@@ -12018,8 +12018,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) { -@@ -12247,10 +12256,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) { +@@ -12031,10 +12040,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; + }