From f3b267b3a229e328bf765ffbb8cb2af382bbfa63 Mon Sep 17 00:00:00 2001 From: Marek Vasut Date: Wed, 27 Jan 2016 04:47:55 +0100 Subject: [PATCH] hush: Add rudimentary support for PS1 and PS2 Add trivial support for changing the U-Boot command prompt string by setting PS1 and PS2 environment variables. Only static variables are supported. Signed-off-by: Marek Vasut Reviewed-by: Heiko Schocher Reviewed-by: Simon Glass --- README | 8 ++++++++ common/cli_hush.c | 10 ++++++++++ 2 files changed, 18 insertions(+) diff --git a/README b/README index 83d2874851..2492364b6d 100644 --- a/README +++ b/README @@ -2905,6 +2905,14 @@ CBFS (Coreboot Filesystem) support Enable editing and History functions for interactive command line input operations +- Command Line PS1/PS2 support: + CONFIG_CMDLINE_PS_SUPPORT + + Enable support for changing the command prompt string + at run-time. Only static string is supported so far. + The string is obtained from environment variables PS1 + and PS2. + - Default Environment: CONFIG_EXTRA_ENV_SETTINGS diff --git a/common/cli_hush.c b/common/cli_hush.c index cbaf22e912..00861e2d9e 100644 --- a/common/cli_hush.c +++ b/common/cli_hush.c @@ -978,12 +978,22 @@ static inline void setup_prompt_string(int promptmode, char **prompt_str) 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 = getenv("PS1"); + else + ps_prompt = getenv("PS2"); + if (ps_prompt) + prompt = ps_prompt; +#endif + return cli_readline(prompt); } #endif -- 2.39.5