fix: properly skip over unrecognized CSI sequences.

This commit is contained in:
Raphael 'kena' Poss 2022-09-27 17:29:44 +02:00 committed by Christian Muehlhaeuser
parent d20732aaea
commit b074f6f5a4
2 changed files with 10 additions and 0 deletions

6
key.go
View File

@ -624,6 +624,12 @@ func readInputs(input io.Reader) ([]Msg, error) {
continue
}
// Is this an unrecognized CSI sequence? If so, ignore it.
if len(runes) > 2 && runes[0] == 0x1b && (runes[1] == '[' ||
(len(runes) > 3 && runes[1] == 0x1b && runes[2] == '[')) {
continue
}
// Is the alt key pressed? If so, the buffer will be prefixed with an
// escape.
alt := false

View File

@ -152,6 +152,10 @@ func TestReadInput(t *testing.T) {
},
},
},
"unrecognized": {
[]byte{'\x1b', '[', '-', '-', '-', '-', 'X'},
[]Msg{},
},
} {
t.Run(out, func(t *testing.T) {
msgs, err := readInputs(bytes.NewReader(td.in))