summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLeo C2016-06-16 16:10:23 +0200
committerLeo C2016-06-17 20:52:19 +0200
commitf6edf92baa4ed307ca517574f38dd0b8752cbc52 (patch)
tree41dc8a137ac102e2ff46209bc21146a07ec90dab
parentef77033ca52647599df6c9053d073216d439780c (diff)
downloadz180-stamp-f6edf92baa4ed307ca517574f38dd0b8752cbc52.zip
catch weird escape sequence: 'SS3 F' --> KEY_END
-rw-r--r--avr/cli_readline.c12
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: