diff --git a/src/Makefile b/src/Makefile index 2604c3bab259538364c6700c988b912c564b18be..d833ce98ec17014903e1c74c90656e7a1adf3f70 100644 --- a/src/Makefile +++ b/src/Makefile @@ -18,7 +18,7 @@ BINDIR := ../bin BINARY32 := fzf-$(GOOS)_386 BINARY64 := fzf-$(GOOS)_amd64 -VERSION = $(shell fzf/$(BINARY64) --version) +VERSION = $(shell fzf/$(BINARY64) --version | sed 's/-p[0-9]*//') RELEASE32 = fzf-$(VERSION)-$(GOOS)_386 RELEASE64 = fzf-$(VERSION)-$(GOOS)_amd64 diff --git a/src/ansi.go b/src/ansi.go index f4c8f5a046e39ffeff09ae81b669772b3ae8adb4..126a99203ae4c37cfec73165bc1b48fecf3ef1ce 100644 --- a/src/ansi.go +++ b/src/ansi.go @@ -33,7 +33,7 @@ func (s *ansiState) equals(t *ansiState) bool { var ansiRegex *regexp.Regexp func init() { - ansiRegex = regexp.MustCompile("\x1b\\[[0-9;]*m") + ansiRegex = regexp.MustCompile("\x1b\\[[0-9;]*[mK]") } func extractColor(str *string) (*string, []ansiOffset) { @@ -87,6 +87,9 @@ func interpretCode(ansiCode string, prevState *ansiState) *ansiState { } else { state = &ansiState{prevState.fg, prevState.bg, prevState.bold} } + if ansiCode[len(ansiCode)-1] == 'K' { + return state + } ptr := &state.fg state256 := 0 diff --git a/src/ansi_test.go b/src/ansi_test.go index be982eb428424cf3991073894303bd265dabd0a1..9f6284096ca6f6b8f7324254ddc53008196a2bb3 100644 --- a/src/ansi_test.go +++ b/src/ansi_test.go @@ -53,6 +53,14 @@ func TestExtractColor(t *testing.T) { assert(offsets[0], 0, 6, -1, -1, true) }) + src = "\x1b[1mhello \x1b[Kworld" + check(func(offsets []ansiOffset) { + if len(offsets) != 1 { + t.Fail() + } + assert(offsets[0], 0, 11, -1, -1, true) + }) + src = "hello \x1b[34;45;1mworld" check(func(offsets []ansiOffset) { if len(offsets) != 1 { diff --git a/src/constants.go b/src/constants.go index 729bc5c4fa4b8c26bbb446f8c36e796dd0cfd41c..394a40d8beb16f5c5e1434239ccaf815b6f6d75b 100644 --- a/src/constants.go +++ b/src/constants.go @@ -5,7 +5,7 @@ import ( ) // Current version -const Version = "0.9.5" +const Version = "0.9.5-p1" // fzf events const (