diff options
author | Bjørn Erik Pedersen <[email protected]> | 2020-04-21 17:44:48 +0200 |
---|---|---|
committer | Bjørn Erik Pedersen <[email protected]> | 2020-04-21 17:46:26 +0200 |
commit | 27af5a339a4d3c5712b5ed946a636a8c21916039 (patch) | |
tree | 8ca43ae76bf3fd89f4d9a5a425b93320bda6532e | |
parent | b3c825756f3251f8b26e53262f9d6f484aecf750 (diff) | |
download | hugo-27af5a339a4d3c5712b5ed946a636a8c21916039.tar.gz hugo-27af5a339a4d3c5712b5ed946a636a8c21916039.zip |
related: Fix toLower
Don't change the slice.
Fixes #7198
-rw-r--r-- | related/inverted_index.go | 7 | ||||
-rw-r--r-- | related/inverted_index_test.go | 15 |
2 files changed, 20 insertions, 2 deletions
diff --git a/related/inverted_index.go b/related/inverted_index.go index fda6b9222..79dd4577c 100644 --- a/related/inverted_index.go +++ b/related/inverted_index.go @@ -274,9 +274,12 @@ func (cfg IndexConfig) ToKeywords(v interface{}) ([]Keyword, error) { keywords = append(keywords, StringKeyword(vv)) case []string: if toLower { - for i := 0; i < len(vv); i++ { - vv[i] = strings.ToLower(vv[i]) + vc := make([]string, len(vv)) + copy(vc, vv) + for i := 0; i < len(vc); i++ { + vc[i] = strings.ToLower(vc[i]) } + vv = vc } keywords = append(keywords, StringsToKeywords(vv...)...) case time.Time: diff --git a/related/inverted_index_test.go b/related/inverted_index_test.go index 57e722364..576928aea 100644 --- a/related/inverted_index_test.go +++ b/related/inverted_index_test.go @@ -201,6 +201,21 @@ func TestSearch(t *testing.T) { } +func TestToKeywordsToLower(t *testing.T) { + c := qt.New(t) + slice := []string{"A", "B", "C"} + config := IndexConfig{ToLower: true} + keywords, err := config.ToKeywords(slice) + c.Assert(err, qt.IsNil) + c.Assert(slice, qt.DeepEquals, []string{"A", "B", "C"}) + c.Assert(keywords, qt.DeepEquals, []Keyword{ + StringKeyword("a"), + StringKeyword("b"), + StringKeyword("c"), + }) + +} + func BenchmarkRelatedNewIndex(b *testing.B) { pages := make([]*testDoc, 100) |