From 148b0a94cdb88bc6e0ff36af1ab2b7bccd24e555 Mon Sep 17 00:00:00 2001 From: Massimo Mund Date: Tue, 23 Sep 2025 16:33:41 +0200 Subject: [PATCH] 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. --- src/tui/light.go | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/tui/light.go b/src/tui/light.go index ec93e67e..e971175b 100644 --- a/src/tui/light.go +++ b/src/tui/light.go @@ -479,6 +479,7 @@ func (r *LightRenderer) escSequence(sz *int) Event { return Event{Delete, 0, nil} } if len(r.buffer) == 7 && r.buffer[6] == '~' && r.buffer[4] == '1' { + *sz = 7 switch r.buffer[5] { case '0': return Event{AltShiftDelete, 0, nil} @@ -525,6 +526,7 @@ func (r *LightRenderer) escSequence(sz *int) Event { return Event{PageUp, 0, nil} } if len(r.buffer) == 7 && r.buffer[6] == '~' && r.buffer[4] == '1' { + *sz = 7 switch r.buffer[5] { case '0': return Event{AltShiftPageUp, 0, nil} @@ -569,6 +571,7 @@ func (r *LightRenderer) escSequence(sz *int) Event { return Event{PageDown, 0, nil} } if len(r.buffer) == 7 && r.buffer[6] == '~' && r.buffer[4] == '1' { + *sz = 7 switch r.buffer[5] { case '0': return Event{AltShiftPageDown, 0, nil}