m/fzf
1
0
mirror of https://github.com/junegunn/fzf.git synced 2025-11-15 14:53:47 -05:00

tui/light: consume full 7-byte CSI sequences to prevent leftover printing (#4528)

- Fix parsing in escSequence so 7-byte CSI forms (e.g. ESC [ 5 ; 10 ~) set *sz = 7 and the entire sequence is consumed.
- Prevents trailing bytes (like 10~) from remaining in the input buffer and being printed as stray characters.
This commit is contained in:
Massimo Mund
2025-09-23 16:33:41 +02:00
committed by GitHub
parent ca294109c3
commit 148b0a94cd

View File

@@ -479,6 +479,7 @@ func (r *LightRenderer) escSequence(sz *int) Event {
return Event{Delete, 0, nil} return Event{Delete, 0, nil}
} }
if len(r.buffer) == 7 && r.buffer[6] == '~' && r.buffer[4] == '1' { if len(r.buffer) == 7 && r.buffer[6] == '~' && r.buffer[4] == '1' {
*sz = 7
switch r.buffer[5] { switch r.buffer[5] {
case '0': case '0':
return Event{AltShiftDelete, 0, nil} return Event{AltShiftDelete, 0, nil}
@@ -525,6 +526,7 @@ func (r *LightRenderer) escSequence(sz *int) Event {
return Event{PageUp, 0, nil} return Event{PageUp, 0, nil}
} }
if len(r.buffer) == 7 && r.buffer[6] == '~' && r.buffer[4] == '1' { if len(r.buffer) == 7 && r.buffer[6] == '~' && r.buffer[4] == '1' {
*sz = 7
switch r.buffer[5] { switch r.buffer[5] {
case '0': case '0':
return Event{AltShiftPageUp, 0, nil} return Event{AltShiftPageUp, 0, nil}
@@ -569,6 +571,7 @@ func (r *LightRenderer) escSequence(sz *int) Event {
return Event{PageDown, 0, nil} return Event{PageDown, 0, nil}
} }
if len(r.buffer) == 7 && r.buffer[6] == '~' && r.buffer[4] == '1' { if len(r.buffer) == 7 && r.buffer[6] == '~' && r.buffer[4] == '1' {
*sz = 7
switch r.buffer[5] { switch r.buffer[5] {
case '0': case '0':
return Event{AltShiftPageDown, 0, nil} return Event{AltShiftPageDown, 0, nil}