diff options
author | Junegunn Choi <junegunn.c@gmail.com> | 2015-07-22 14:19:45 +0900 |
---|---|---|
committer | Junegunn Choi <junegunn.c@gmail.com> | 2015-07-22 14:19:45 +0900 |
commit | 5e3cb3a4eaa557b03d0d18a36f983cc6acec6ad1 (patch) | |
tree | 3205662fa6d6616d036996864ebff7b5623ac599 /src/ansi.go | |
parent | f71ea5f3ea469489fc979ee3c0cd2622d011befd (diff) |
Fix ANSI processor to handle multi-line regions
Diffstat (limited to 'src/ansi.go')
-rw-r--r-- | src/ansi.go | 10 |
1 files changed, 6 insertions, 4 deletions
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 { |