diff --git a/components/finsh/shell.c b/components/finsh/shell.c index 0f1e1c625ed4bba7a87d72a622c0f9dddc6edf0d..4313fcf6b2bf80664d1a61e713ca641eb39b852d 100644 --- a/components/finsh/shell.c +++ b/components/finsh/shell.c @@ -60,14 +60,16 @@ const char* finsh_get_prompt() { #define _MSH_PROMPT "msh " #define _PROMPT "finsh " - static char finsh_prompt[RT_CONSOLEBUF_SIZE + 1] = {_PROMPT}; + static char finsh_prompt[RT_CONSOLEBUF_SIZE + 1] = {0}; #ifdef FINSH_USING_MSH if (msh_is_used()) strcpy(finsh_prompt, _MSH_PROMPT); + else #endif + strcpy(finsh_prompt, _PROMPT); /* get current working directory */ - getcwd(&finsh_prompt[rt_strlen(finsh_prompt)], RT_CONSOLEBUF_SIZE - 8); + getcwd(&finsh_prompt[rt_strlen(finsh_prompt)], RT_CONSOLEBUF_SIZE - rt_strlen(finsh_prompt)); strcat(finsh_prompt, ">"); return finsh_prompt;