diff options
Diffstat (limited to 'src/core.go')
-rw-r--r-- | src/core.go | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/src/core.go b/src/core.go index 1006109d..ae5e58bf 100644 --- a/src/core.go +++ b/src/core.go @@ -23,6 +23,10 @@ func ustring(data []byte) string { return unsafe.String(unsafe.SliceData(data), len(data)) } +func sbytes(data string) []byte { + return unsafe.Slice(unsafe.StringData(data), len(data)) +} + // Run starts fzf func Run(opts *Options, version string, revision string) { sort := opts.Sort > 0 @@ -52,14 +56,14 @@ func Run(opts *Options, version string, revision string) { prevLineAnsiState = lineAnsiState trimmed, offsets, newState := extractColor(ustring(data), lineAnsiState, nil) lineAnsiState = newState - return util.ToChars([]byte(trimmed)), offsets + return util.ToChars(sbytes(trimmed)), offsets } } else { // When color is disabled but ansi option is given, // we simply strip out ANSI codes from the input ansiProcessor = func(data []byte) (util.Chars, *[]ansiOffset) { trimmed, _, _ := extractColor(ustring(data), nil, nil) - return util.ToChars([]byte(trimmed)), nil + return util.ToChars(sbytes(trimmed)), nil } } } @@ -106,7 +110,7 @@ func Run(opts *Options, version string, revision string) { eventBox.Set(EvtHeader, header) return false } - item.text, item.colors = ansiProcessor([]byte(transformed)) + item.text, item.colors = ansiProcessor(sbytes(transformed)) item.text.TrimTrailingWhitespaces() item.text.Index = itemIndex item.origText = &data |