diff options
| author | Junegunn Choi <junegunn.c@gmail.com> | 2025-06-25 08:26:14 +0900 |
|---|---|---|
| committer | Junegunn Choi <junegunn.c@gmail.com> | 2025-06-25 08:26:14 +0900 |
| commit | debf3d8a8af9c165889e21227393cbda7ba5f9c3 (patch) | |
| tree | 39bf80630b5d825e0affb948a2e5bcafdf3a6793 /src | |
| parent | 4811e52af3ed7f89e82baa908f9a8a25fb593361 (diff) | |
| download | fzf-debf3d8a8af9c165889e21227393cbda7ba5f9c3.tar.gz | |
Refactor ANSI parser
Diffstat (limited to 'src')
| -rw-r--r-- | src/ansi.go | 17 |
1 files changed, 8 insertions, 9 deletions
diff --git a/src/ansi.go b/src/ansi.go index cbe73c21..ba4b3d45 100644 --- a/src/ansi.go +++ b/src/ansi.go @@ -399,10 +399,15 @@ func interpretCode(ansiCode string, prevState *ansiState) ansiState { return state } - if len(ansiCode) <= 3 { + reset := func() { state.fg = -1 state.bg = -1 state.attr = 0 + state.lbg = -1 + } + + if len(ansiCode) <= 3 { + reset() return state } ansiCode = ansiCode[2 : len(ansiCode)-1] @@ -456,10 +461,7 @@ func interpretCode(ansiCode string, prevState *ansiState) ansiState { case 29: state.attr = state.attr &^ tui.StrikeThrough case 0: - state.fg = -1 - state.bg = -1 - state.attr = 0 - state.lbg = -1 + reset() state256 = 0 default: if num >= 30 && num <= 37 { @@ -499,10 +501,7 @@ func interpretCode(ansiCode string, prevState *ansiState) ansiState { // Empty sequence: reset if count == 0 { - state.fg = -1 - state.bg = -1 - state.attr = 0 - state.lbg = -1 + reset() } if state256 > 0 { |
