hush: allow fancy prompts
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
This commit is contained in:
parent
66e4e9242b
commit
6eb741a2e1
|
@ -226,6 +226,15 @@ config PROMPT_HUSH_PS2
|
|||
prompt "hush PS2"
|
||||
default "> "
|
||||
|
||||
config HUSH_FANCY_PROMPT
|
||||
bool
|
||||
depends on SHELL_HUSH
|
||||
select PROCESS_ESCAPE_SEQUENCE
|
||||
prompt "allow fancy hush prompts"
|
||||
help
|
||||
Allow to set PS1 from the command line. PS1 can have several escaped commands
|
||||
like \h for CONFIG_BOARDINFO or \w for the current working directory.
|
||||
|
||||
config CMDLINE_EDITING
|
||||
bool
|
||||
prompt "Enable command line editing"
|
||||
|
|
|
@ -389,15 +389,19 @@ static int static_peek(struct in_str *i)
|
|||
return *i->p;
|
||||
}
|
||||
|
||||
|
||||
static char *getprompt(void)
|
||||
{
|
||||
static char *prompt;
|
||||
static char prompt[PATH_MAX + 32];
|
||||
|
||||
if (!prompt)
|
||||
prompt = xmalloc(PATH_MAX + strlen(CONFIG_PROMPT) + 1);
|
||||
#ifdef CONFIG_HUSH_FANCY_PROMPT
|
||||
const char *ps1 = getenv("PS1");
|
||||
|
||||
if (ps1)
|
||||
process_escape_sequence(ps1, prompt, PATH_MAX + 32);
|
||||
else
|
||||
#endif
|
||||
sprintf(prompt, "%s%s ", CONFIG_PROMPT, getcwd());
|
||||
|
||||
return prompt;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue