From 5e3cb3a4eaa557b03d0d18a36f983cc6acec6ad1 Mon Sep 17 00:00:00 2001 From: Junegunn Choi Date: Wed, 22 Jul 2015 14:19:45 +0900 Subject: Fix ANSI processor to handle multi-line regions --- src/ansi.go | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) (limited to 'src/ansi.go') diff --git a/src/ansi.go b/src/ansi.go index 116282c1..a80de478 100644 --- a/src/ansi.go +++ b/src/ansi.go @@ -36,11 +36,13 @@ func init() { ansiRegex = regexp.MustCompile("\x1b\\[[0-9;]*[mK]") } -func extractColor(str *string) (*string, []ansiOffset) { +func extractColor(str *string, state *ansiState) (*string, []ansiOffset, *ansiState) { var offsets []ansiOffset - var output bytes.Buffer - var state *ansiState + + if state != nil { + offsets = append(offsets, ansiOffset{[2]int32{0, 0}, *state}) + } idx := 0 for _, offset := range ansiRegex.FindAllStringIndex(*str, -1) { @@ -76,7 +78,7 @@ func extractColor(str *string) (*string, []ansiOffset) { } } outputStr := output.String() - return &outputStr, offsets + return &outputStr, offsets, state } func interpretCode(ansiCode string, prevState *ansiState) *ansiState { -- cgit v1.2.3