diff options
author | Leo C | 2016-06-16 16:10:23 +0200 |
---|---|---|
committer | Leo C | 2016-06-17 20:52:19 +0200 |
commit | f6edf92baa4ed307ca517574f38dd0b8752cbc52 (patch) | |
tree | 41dc8a137ac102e2ff46209bc21146a07ec90dab /avr | |
parent | ef77033ca52647599df6c9053d073216d439780c (diff) | |
download | z180-stamp-f6edf92baa4ed307ca517574f38dd0b8752cbc52.zip |
catch weird escape sequence: 'SS3 F' --> KEY_END
Diffstat (limited to 'avr')
-rw-r--r-- | avr/cli_readline.c | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/avr/cli_readline.c b/avr/cli_readline.c index c2e2326..81230e0 100644 --- a/avr/cli_readline.c +++ b/avr/cli_readline.c @@ -105,7 +105,8 @@ FKEY_TBL_ITEM(24~, KEY_F(12)), // Function key F12 typedef enum { STATE_GROUND, STATE_ESCAPE, - STATE_CSI_ENTRY + STATE_CSI_ENTRY, + STATE_SS3 } vtparse_state_t; #define CHB_SIZE 15 @@ -145,6 +146,15 @@ int vt_parse (void) i_param = 0; continue; } + if (ch == 'O') { + state = STATE_SS3; + continue; + } + state = STATE_GROUND; + break; + case STATE_SS3: + if (ch == 'F') /* weird */ + ch = KEY_END; state = STATE_GROUND; break; case STATE_CSI_ENTRY: |