diff options
| author | Ron Yorston <rmy@pobox.com> | 2024-05-10 14:32:45 +0100 |
|---|---|---|
| committer | Ron Yorston <rmy@pobox.com> | 2024-05-10 14:32:45 +0100 |
| commit | bb128070e590234f8b63fb1d67f7621a1b4b3ff3 (patch) | |
| tree | df99454212ae35178445b36e55e159b0e28ee7eb /shell | |
| parent | fdff0f9e8077fcf0e25a567c2be9e8da71c1676d (diff) | |
| download | busybox-w32-bb128070e590234f8b63fb1d67f7621a1b4b3ff3.tar.gz busybox-w32-bb128070e590234f8b63fb1d67f7621a1b4b3ff3.tar.bz2 busybox-w32-bb128070e590234f8b63fb1d67f7621a1b4b3ff3.zip | |
ash: -X option shouldn't alter environment variables
When a shell was started with the -X option, environment variables
had forward slashes changed to backslashes. This is unnecessary
and counterproductive.
Adjust how the state of winxp is handled to avoid this.
(GitHub issue #415)
Diffstat (limited to 'shell')
| -rw-r--r-- | shell/ash.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/shell/ash.c b/shell/ash.c index fd09e7662..b753678c0 100644 --- a/shell/ash.c +++ b/shell/ash.c | |||
| @@ -2944,11 +2944,11 @@ listvars(int on, int off, struct strlist *lp, char ***end) | |||
| 2944 | static void | 2944 | static void |
| 2945 | setwinxp(int on) | 2945 | setwinxp(int on) |
| 2946 | { | 2946 | { |
| 2947 | static smallint is_winxp; | 2947 | static smallint is_winxp = 1; |
| 2948 | struct var **vpp; | 2948 | struct var **vpp; |
| 2949 | struct var *vp; | 2949 | struct var *vp; |
| 2950 | 2950 | ||
| 2951 | if (++on == is_winxp) | 2951 | if (on == is_winxp) |
| 2952 | return; | 2952 | return; |
| 2953 | is_winxp = on; | 2953 | is_winxp = on; |
| 2954 | 2954 | ||
| @@ -2959,7 +2959,7 @@ setwinxp(int on) | |||
| 2959 | if (!end || is_prefixed_with(vp->var_text, "COMSPEC=") || | 2959 | if (!end || is_prefixed_with(vp->var_text, "COMSPEC=") || |
| 2960 | is_prefixed_with(vp->var_text, "SYSTEMROOT=")) | 2960 | is_prefixed_with(vp->var_text, "SYSTEMROOT=")) |
| 2961 | continue; | 2961 | continue; |
| 2962 | if (!winxp) | 2962 | if (!on) |
| 2963 | bs_to_slash(end + 1); | 2963 | bs_to_slash(end + 1); |
| 2964 | else | 2964 | else |
| 2965 | slash_to_bs(end + 1); | 2965 | slash_to_bs(end + 1); |
