From 92a75c9563600a174e9ee8334853f99ed560492a Mon Sep 17 00:00:00 2001 From: Junegunn Choi Date: Fri, 2 Oct 2015 18:40:20 +0900 Subject: Use trimmed length when --nth is used with --tiebreak=length This change improves sort ordering for aligned tabular input. Given the following input: apple juice 100 apple pie 200 fzf --nth=2 will now prefer the one with pie. Before this change fzf compared "juice " and "pie ", both of which have the same length. --- src/util/util_test.go | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'src/util/util_test.go') diff --git a/src/util/util_test.go b/src/util/util_test.go index 06cfd4f2..8aeaeac5 100644 --- a/src/util/util_test.go +++ b/src/util/util_test.go @@ -20,3 +20,23 @@ func TestContrain(t *testing.T) { t.Error("Expected", 3) } } + +func TestTrimLen(t *testing.T) { + check := func(str string, exp int) { + trimmed := TrimLen([]rune(str)) + if trimmed != exp { + t.Errorf("Invalid TrimLen result for '%s': %d (expected %d)", + str, trimmed, exp) + } + } + check("hello", 5) + check("hello ", 5) + check("hello ", 5) + check(" hello", 5) + check(" hello", 5) + check(" hello ", 5) + check(" hello ", 5) + check("h o", 5) + check(" h o ", 5) + check(" ", 0) +} -- cgit v1.2.3