summaryrefslogtreecommitdiffstats
path: root/src/core.go
diff options
context:
space:
mode:
Diffstat (limited to 'src/core.go')
-rw-r--r--src/core.go10
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