mirror of
https://github.com/junegunn/fzf.git
synced 2026-10-08 13:05:22 +08:00
Performance fix - unnecessary rune convertion on --ansi
> time cat /tmp/list | fzf-0.10.1-darwin_amd64 --ansi -fqwerty > /dev/null
real 0m4.364s
user 0m8.231s
sys 0m0.820s
> time cat /tmp/list | fzf --ansi -fqwerty > /dev/null
real 0m4.624s
user 0m5.755s
sys 0m0.732s
This commit is contained in:
1 parent
0ea66329b8
commit
e13bafc1ab
6 files changed
+52
-42
No files matched your search
@@ -6,6 +6,7 @@ import "C"
|
||||
import (
|
||||
"os"
|
||||
"time"
|
||||
"unicode/utf8"
|
||||
)
|
||||
|
||||
// Max returns the largest integer
|
||||
@@ -88,3 +89,18 @@ func TrimRight(runes []rune) []rune {
|
||||
}
|
||||
return runes[0 : i+1]
|
||||
}
|
||||
|
||||
func BytesToRunes(bytea []byte) []rune {
|
||||
runes := make([]rune, 0, len(bytea))
|
||||
for i := 0; i < len(bytea); {
|
||||
if bytea[i] < utf8.RuneSelf {
|
||||
runes = append(runes, rune(bytea[i]))
|
||||
i++
|
||||
} else {
|
||||
r, sz := utf8.DecodeRune(bytea[i:])
|
||||
i += sz
|
||||
runes = append(runes, r)
|
||||
}
|
||||
}
|
||||
return runes
|
||||
}
|
||||
Reference in new issue
Block a user