9
0
Fork 0

hush: allow fancy prompts

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
This commit is contained in:
Sascha Hauer 2010-03-29 10:58:32 +02:00
parent 66e4e9242b
commit 6eb741a2e1
2 changed files with 17 additions and 4 deletions

View File

@ -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"

View File

@ -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;
}