base-files: allow users to delect debug level during boot
[openwrt.git] / package / utils / busybox / patches / 250-ash_export-n.patch
1 --- a/shell/ash.c
2 +++ b/shell/ash.c
3 @@ -12611,8 +12611,17 @@ exportcmd(int argc UNUSED_PARAM, char **
4         const char *p;
5         char **aptr;
6         int flag = argv[0][0] == 'r' ? VREADONLY : VEXPORT;
7 +       int mask = ~0;
8 +       int nopt;
9 +       while ((nopt = nextopt("np"))) {
10 +               if (nopt == 'n') {
11 +                               mask = ~flag;
12 +               } else { /* p */
13 +                       break;
14 +               }
15 +       }
16  
17 -       if (nextopt("p") != 'p') {
18 +       if (nopt != 'p') {
19                 aptr = argptr;
20                 name = *aptr;
21                 if (name) {
22 @@ -12624,10 +12633,12 @@ exportcmd(int argc UNUSED_PARAM, char **
23                                         vp = *findvar(hashvar(name), name);
24                                         if (vp) {
25                                                 vp->flags |= flag;
26 +                                               vp->flags &= mask;
27                                                 continue;
28                                         }
29                                 }
30                                 setvar(name, p, flag);
31 +                               setvar(name, p, flag & mask);
32                         } while ((name = *++aptr) != NULL);
33                         return 0;
34                 }