From 0e999482cb13c194427d47687a49473e1e240a20 Mon Sep 17 00:00:00 2001 From: Junegunn Choi Date: Mon, 25 Dec 2023 17:05:14 +0900 Subject: Fix handling of empty ANSI color sequence Fix #3320 --- src/ansi.go | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'src/ansi.go') diff --git a/src/ansi.go b/src/ansi.go index 05e08613..e917a4f2 100644 --- a/src/ansi.go +++ b/src/ansi.go @@ -351,9 +351,11 @@ func interpretCode(ansiCode string, prevState *ansiState) ansiState { ptr := &state.fg var delimiter byte = 0 + count := 0 for len(ansiCode) != 0 { var num int if num, delimiter, ansiCode = parseAnsiCode(ansiCode, delimiter); num != -1 { + count++ switch state256 { case 0: switch num { @@ -435,6 +437,13 @@ func interpretCode(ansiCode string, prevState *ansiState) ansiState { } } + // Empty sequence: reset + if count == 0 { + state.fg = -1 + state.bg = -1 + state.attr = 0 + } + if state256 > 0 { *ptr = -1 } -- cgit v1.2.3