diff options
Diffstat (limited to 'shell/ash.c')
-rw-r--r-- | shell/ash.c | 18 |
1 files changed, 10 insertions, 8 deletions
diff --git a/shell/ash.c b/shell/ash.c index 6e6fc6a71..97c9589cc 100644 --- a/shell/ash.c +++ b/shell/ash.c | |||
@@ -2348,7 +2348,7 @@ unsetvar(const char *s) | |||
2348 | free(vp); | 2348 | free(vp); |
2349 | INT_ON; | 2349 | INT_ON; |
2350 | } else { | 2350 | } else { |
2351 | setvar(s, 0, 0); | 2351 | setvar2(s, 0); |
2352 | vp->flags &= ~VEXPORT; | 2352 | vp->flags &= ~VEXPORT; |
2353 | } | 2353 | } |
2354 | ok: | 2354 | ok: |
@@ -6698,7 +6698,7 @@ subevalvar(char *p, char *varname, int strloc, int subtype, | |||
6698 | 6698 | ||
6699 | switch (subtype) { | 6699 | switch (subtype) { |
6700 | case VSASSIGN: | 6700 | case VSASSIGN: |
6701 | setvar(varname, startp, 0); | 6701 | setvar2(varname, startp); |
6702 | amount = startp - expdest; | 6702 | amount = startp - expdest; |
6703 | STADJUST(amount, expdest); | 6703 | STADJUST(amount, expdest); |
6704 | return startp; | 6704 | return startp; |
@@ -8960,7 +8960,7 @@ evalfor(union node *n, int flags) | |||
8960 | loopnest++; | 8960 | loopnest++; |
8961 | flags &= EV_TESTED; | 8961 | flags &= EV_TESTED; |
8962 | for (sp = arglist.list; sp; sp = sp->next) { | 8962 | for (sp = arglist.list; sp; sp = sp->next) { |
8963 | setvar(n->nfor.var, sp->text, 0); | 8963 | setvar2(n->nfor.var, sp->text); |
8964 | evaltree(n->nfor.body, flags); | 8964 | evaltree(n->nfor.body, flags); |
8965 | if (evalskip) { | 8965 | if (evalskip) { |
8966 | if (evalskip == SKIPCONT && --skipcount <= 0) { | 8966 | if (evalskip == SKIPCONT && --skipcount <= 0) { |
@@ -9955,7 +9955,7 @@ evalcommand(union node *cmd, int flags) | |||
9955 | * '_' in 'vi' command mode during line editing... | 9955 | * '_' in 'vi' command mode during line editing... |
9956 | * However I implemented that within libedit itself. | 9956 | * However I implemented that within libedit itself. |
9957 | */ | 9957 | */ |
9958 | setvar("_", lastarg, 0); | 9958 | setvar2("_", lastarg); |
9959 | } | 9959 | } |
9960 | popstackmark(&smark); | 9960 | popstackmark(&smark); |
9961 | } | 9961 | } |
@@ -12777,7 +12777,6 @@ dotcmd(int argc, char **argv) | |||
12777 | * bash returns exitcode 1 instead. | 12777 | * bash returns exitcode 1 instead. |
12778 | */ | 12778 | */ |
12779 | fullname = find_dot_file(argv[1]); | 12779 | fullname = find_dot_file(argv[1]); |
12780 | |||
12781 | argv += 2; | 12780 | argv += 2; |
12782 | argc -= 2; | 12781 | argc -= 2; |
12783 | if (argc) { /* argc > 0, argv[0] != NULL */ | 12782 | if (argc) { /* argc > 0, argv[0] != NULL */ |
@@ -13615,8 +13614,11 @@ init(void) | |||
13615 | } | 13614 | } |
13616 | 13615 | ||
13617 | if (!ENABLE_PLATFORM_MINGW32) | 13616 | if (!ENABLE_PLATFORM_MINGW32) |
13618 | setvar("PPID", utoa(getppid()), 0); | 13617 | setvar2("PPID", utoa(getppid())); |
13619 | 13618 | #if ENABLE_ASH_BASH_COMPAT | |
13619 | p = lookupvar("SHLVL"); | ||
13620 | setvar2("SHLVL", utoa(p ? atoi(p) + 1 : 1)); | ||
13621 | #endif | ||
13620 | p = lookupvar("PWD"); | 13622 | p = lookupvar("PWD"); |
13621 | if (p) { | 13623 | if (p) { |
13622 | if (*p != '/' || stat(p, &st1) || stat(".", &st2) | 13624 | if (*p != '/' || stat(p, &st1) || stat(".", &st2) |
@@ -13909,7 +13911,7 @@ int ash_main(int argc UNUSED_PARAM, char **argv) | |||
13909 | hp = lookupvar("HOME"); | 13911 | hp = lookupvar("HOME"); |
13910 | if (hp) { | 13912 | if (hp) { |
13911 | hp = concat_path_file(hp, ".ash_history"); | 13913 | hp = concat_path_file(hp, ".ash_history"); |
13912 | setvar("HISTFILE", hp, 0); | 13914 | setvar2("HISTFILE", hp); |
13913 | free((char*)hp); | 13915 | free((char*)hp); |
13914 | hp = lookupvar("HISTFILE"); | 13916 | hp = lookupvar("HISTFILE"); |
13915 | } | 13917 | } |