
Hi Yurii,
On Fri, 6 Oct 2023 at 15:32, Yurii Monakov monakov.y@gmail.com wrote:
This commit fixes some issues with extra 'Esc' keys entered by user:
- 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 monakov.y@gmail.com
common/cli_getch.c | 2 ++ 1 file changed, 2 insertions(+)
diff --git a/common/cli_getch.c b/common/cli_getch.c index 61d4cb261b..0ee7908777 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) {
-- 2.34.1
This is a bit unfortunate. Basically the problem (as I understand it) is that characters are built up for processing so the expected ichar == 0 is never passed in.
I think the fix is reasonable. Does it work as well if use:
else if (ichar == '\e') act = ESC_CONVERTED;
?
Also please can you add a test case o test/common/cread.c
https://u-boot.readthedocs.io/en/latest/develop/tests_sandbox.html
Regards, Simon