common: Fix autocompletion with CONFIG_CMDLINE_PS_SUPPORT
authorMarek Vasut <marex@denx.de>
Wed, 26 Jun 2019 22:17:27 +0000 (00:17 +0200)
committerTom Rini <trini@konsulko.com>
Thu, 18 Jul 2019 15:31:25 +0000 (11:31 -0400)
The autocompletion did not work if CONFIG_CMDLINE_PS_SUPPORT was enabled
because U-Boot was comparing the prompt string with CONFIG_SYS_PROMPT .
While this works if CONFIG_CMDLINE_PS_SUPPORT is disabled, this no longer
works if it's enabled because user can override the PS1 . Fix this by
checking prompt string against the current PS1 value.

Signed-off-by: Marek Vasut <marex@denx.de>
Cc: Tom Rini <trini@konsulko.com>
common/command.c

index e192bb2..db25bf5 100644 (file)
@@ -356,8 +356,13 @@ int cmd_auto_complete(const char *const prompt, char *buf, int *np, int *colp)
        int i, j, k, len, seplen, argc;
        int cnt;
        char last_char;
+#ifdef CONFIG_CMDLINE_PS_SUPPORT
+       const char *ps_prompt = env_get("PS1");
+#else
+       const char *ps_prompt = CONFIG_SYS_PROMPT;
+#endif
 
-       if (strcmp(prompt, CONFIG_SYS_PROMPT) != 0)
+       if (strcmp(prompt, ps_prompt) != 0)
                return 0;       /* not in normal console */
 
        cnt = strlen(buf);