diff options
| author | Yurii Monakov <[email protected]> | 2023-10-10 11:16:39 +0300 |
|---|---|---|
| committer | Tom Rini <[email protected]> | 2023-10-24 16:34:45 -0400 |
| commit | 2dd86b9075466550685daea56ba2f28cb7d0b6a1 (patch) | |
| tree | 30e6e04f7e753ea3801387a96f47932e8681ceaf /common | |
| parent | 5cab3515f8c9796015739c1750b8933291c816be (diff) | |
cli: Consume invalid escape sequences early
Unexpected 'Esc' key presses are accumulated internally, even if it is
already clear that the current escape sequence is invalid. This results
in weird behaviour. For example, the next character after 'Esc' key
simply disappears from input and 'Unknown command' is printed
after 'Enter'.
This commit fixes some issues with extra 'Esc' keys entered by user:
1. Sequence <Esc><Esc><Enter> right after autoboot stop gives:
=>
nknown command 'ry 'help'
=>
2. Sequence <Esc><p><r><i><Enter> gives:
=> ri
Unknown command 'ri' - try 'help'
=>
3. Extra 'Esc' key presses break backspace functionality.
Signed-off-by: Yurii Monakov <[email protected]>
Reviewed-by: Simon Glass <[email protected]>
Diffstat (limited to 'common')
| -rw-r--r-- | common/cli_getch.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/common/cli_getch.c b/common/cli_getch.c index 61d4cb261b8..0ee79087774 100644 --- a/common/cli_getch.c +++ b/common/cli_getch.c @@ -46,6 +46,8 @@ static int cli_ch_esc(struct cli_ch_state *cch, int ichar, case 1: if (ichar == '[' || ichar == 'O') act = ESC_SAVE; + else + act = ESC_CONVERTED; break; case 2: switch (ichar) { |
