X-Git-Url: http://git.ipfire.org/?a=blobdiff_plain;f=common%2Fcli_hush.c;h=07c048ec6a97a7ccd713d8dc0780244a8c98889a;hb=beac7d33d9131d22ffbdbfbf2786858062b63786;hp=7f69c062a7ae04151f6d9a36bb424920a5ebd7dd;hpb=25ef4bea59dadbd25dec1dbb376ed84dfc735f02;p=people%2Fms%2Fu-boot.git diff --git a/common/cli_hush.c b/common/cli_hush.c index 7f69c062a7..07c048ec6a 100644 --- a/common/cli_hush.c +++ b/common/cli_hush.c @@ -560,7 +560,7 @@ static int builtin_cd(struct child_prog *child) { char *newdir; if (child->argv[1] == NULL) - newdir = getenv("HOME"); + newdir = env_get("HOME"); else newdir = child->argv[1]; if (chdir(newdir)) { @@ -948,7 +948,7 @@ static inline void cmdedit_set_initial_prompt(void) #ifndef CONFIG_FEATURE_SH_FANCY_PROMPT PS1 = NULL; #else - PS1 = getenv("PS1"); + PS1 = env_get("PS1"); if(PS1==0) PS1 = "\\w \\$ "; #endif @@ -974,6 +974,30 @@ static inline void setup_prompt_string(int promptmode, char **prompt_str) } #endif +#ifdef __U_BOOT__ +static int uboot_cli_readline(struct in_str *i) +{ + char *prompt; + char __maybe_unused *ps_prompt = NULL; + + if (i->promptmode == 1) + prompt = CONFIG_SYS_PROMPT; + else + prompt = CONFIG_SYS_PROMPT_HUSH_PS2; + +#ifdef CONFIG_CMDLINE_PS_SUPPORT + if (i->promptmode == 1) + ps_prompt = env_get("PS1"); + else + ps_prompt = env_get("PS2"); + if (ps_prompt) + prompt = ps_prompt; +#endif + + return cli_readline(prompt); +} +#endif + static void get_user_input(struct in_str *i) { #ifndef __U_BOOT__ @@ -1003,11 +1027,8 @@ static void get_user_input(struct in_str *i) bootretry_reset_cmd_timeout(); i->__promptme = 1; - if (i->promptmode == 1) { - n = cli_readline(CONFIG_SYS_PROMPT); - } else { - n = cli_readline(CONFIG_SYS_PROMPT_HUSH_PS2); - } + n = uboot_cli_readline(i); + #ifdef CONFIG_BOOT_RETRY_TIME if (n == -2) { puts("\nTimeout waiting for command\n"); @@ -2151,7 +2172,7 @@ int set_local_var(const char *s, int flg_export) name=strdup(s); #ifdef __U_BOOT__ - if (getenv(name) != NULL) { + if (env_get(name) != NULL) { printf ("ERROR: " "There is a global environment variable with the same name.\n"); free(name); @@ -2244,7 +2265,7 @@ void unset_local_var(const char *name) } else { #ifndef __U_BOOT__ if(cur->flg_export) - unsetenv(cur->name); + unenv_set(cur->name); #endif free(cur->name); free(cur->value); @@ -2772,7 +2793,7 @@ static char *lookup_param(char *src) } } - p = getenv(src); + p = env_get(src); if (!p) p = get_local_var(src); @@ -3136,7 +3157,7 @@ static void mapset(const unsigned char *set, int code) static void update_ifs_map(void) { /* char *ifs and char map[256] are both globals. */ - ifs = (uchar *)getenv("IFS"); + ifs = (uchar *)env_get("IFS"); if (ifs == NULL) ifs=(uchar *)" \t\n"; /* Precompute a list of 'flow through' behavior so it can be treated * quickly up front. Computation is necessary because of IFS. @@ -3508,9 +3529,9 @@ static char *insert_var_value_sub(char *inp, int tag_subst) char *p, *p1, *res_str = NULL; while ((p = strchr(inp, SPECIAL_VAR_SYMBOL))) { - /* check the beginning of the string for normal charachters */ + /* check the beginning of the string for normal characters */ if (p != inp) { - /* copy any charachters to the result string */ + /* copy any characters to the result string */ len = p - inp; res_str = xrealloc(res_str, (res_str_len + len)); strncpy((res_str + res_str_len), inp, len);