]> cloudbase.mooo.com Git - z180-stamp.git/blobdiff - avr/cli_readline.c
catch weird escape sequence: 'SS3 F' --> KEY_END
[z180-stamp.git] / avr / cli_readline.c
index c2e2326a61560f6d3de2e22290f2b9aa201469bf..81230e02d86e092abddde298e6ec6d2823ac9045 100644 (file)
@@ -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: