From 85ef3263fcfe578aecdac2aecd6c949fed921a7f Mon Sep 17 00:00:00 2001 From: Junegunn Choi Date: Sun, 24 Apr 2016 03:30:51 +0900 Subject: [PATCH] Fix incorrect cache reference in --exact mode (#547) When we prepend a single quote to our query in --exact mode, we are not supposed to limit the scope of the new search to the previous exact-match result. --- src/pattern.go | 2 +- test/test_go.rb | 10 ++++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/src/pattern.go b/src/pattern.go index fda5cc9a..42a341b4 100644 --- a/src/pattern.go +++ b/src/pattern.go @@ -227,7 +227,7 @@ func (p *Pattern) CacheKey() string { } cacheableTerms := []string{} for _, termSet := range p.termSets { - if len(termSet) == 1 && !termSet[0].inv { + if len(termSet) == 1 && !termSet[0].inv && (p.fuzzy || termSet[0].typ == termExact) { cacheableTerms = append(cacheableTerms, string(termSet[0].origText)) } } diff --git a/test/test_go.rb b/test/test_go.rb index 2c3ba2eb..2c1324b8 100644 --- a/test/test_go.rb +++ b/test/test_go.rb @@ -1157,6 +1157,16 @@ class TestGoFZF < TestBase end end + def test_partial_caching + tmux.send_keys 'seq 1000 | fzf -e', :Enter + tmux.until { |lines| lines[-2] == ' 1000/1000' } + tmux.send_keys 11 + tmux.until { |lines| lines[-2] == ' 19/1000' } + tmux.send_keys 'C-a', "'" + tmux.until { |lines| lines[-2] == ' 28/1000' } + tmux.send_keys :Enter + end + private def writelines path, lines File.unlink path while File.exists? path