diff --git a/shell/ash.c b/shell/ash.c index 9fd1b55e2..a7c03bbc2 100644 --- a/shell/ash.c +++ b/shell/ash.c @@ -1919,7 +1919,7 @@ static const struct { { VSTRFIXED|VTEXTFIXED , "PS2=> " , NULL }, { VSTRFIXED|VTEXTFIXED , "PS4=+ " , NULL }, #if ENABLE_ASH_GETOPTS - { VSTRFIXED|VTEXTFIXED , "OPTIND=1" , getoptsreset }, + { VSTRFIXED|VTEXTFIXED , defoptindvar, getoptsreset }, #endif #if ENABLE_ASH_RANDOM_SUPPORT { VSTRFIXED|VTEXTFIXED|VUNSET|VDYNAMIC, "RANDOM", change_random }, @@ -13124,6 +13124,8 @@ init(void) } } + setvareq((char*)defoptindvar, VTEXTFIXED); + setvar0("PPID", utoa(getppid())); #if ENABLE_ASH_BASH_COMPAT p = lookupvar("SHLVL"); diff --git a/shell/shell_common.c b/shell/shell_common.c index 14eeaafcc..98d862744 100644 --- a/shell/shell_common.c +++ b/shell/shell_common.c @@ -21,6 +21,7 @@ #include /* getrlimit */ const char defifsvar[] ALIGN1 = "IFS= \t\n"; +const char defoptindvar[] ALIGN1 = "OPTIND=1"; int FAST_FUNC is_well_formed_var_name(const char *s, char terminator) diff --git a/shell/shell_common.h b/shell/shell_common.h index 993ed5951..a82535c86 100644 --- a/shell/shell_common.h +++ b/shell/shell_common.h @@ -24,6 +24,8 @@ PUSH_AND_SET_FUNCTION_VISIBILITY_TO_HIDDEN extern const char defifsvar[] ALIGN1; /* "IFS= \t\n" */ #define defifs (defifsvar + 4) +extern const char defoptindvar[] ALIGN1; /* "OPTIND=1" */ + int FAST_FUNC is_well_formed_var_name(const char *s, char terminator); /* Builtins */