From a16d8f66a99ae365a57d114d5ee7d0a7ebc4cf5f Mon Sep 17 00:00:00 2001 From: Junegunn Choi Date: Mon, 9 Jan 2017 09:52:17 +0900 Subject: Normalize pattern string before passing it to Algo function --- src/pattern.go | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) (limited to 'src/pattern.go') diff --git a/src/pattern.go b/src/pattern.go index 8f1d9bce..731104f8 100644 --- a/src/pattern.go +++ b/src/pattern.go @@ -95,7 +95,7 @@ func BuildPattern(fuzzy bool, fuzzyAlgo algo.Algo, extended bool, caseMode Case, termSets := []termSet{} if extended { - termSets = parseTerms(fuzzy, caseMode, asString) + termSets = parseTerms(fuzzy, caseMode, normalize, asString) Loop: for _, termSet := range termSets { for idx, term := range termSet { @@ -140,7 +140,7 @@ func BuildPattern(fuzzy bool, fuzzyAlgo algo.Algo, extended bool, caseMode Case, return ptr } -func parseTerms(fuzzy bool, caseMode Case, str string) []termSet { +func parseTerms(fuzzy bool, caseMode Case, normalize bool, str string) []termSet { tokens := _splitRegex.Split(str, -1) sets := []termSet{} set := termSet{} @@ -196,10 +196,14 @@ func parseTerms(fuzzy bool, caseMode Case, str string) []termSet { sets = append(sets, set) set = termSet{} } + textRunes := []rune(text) + if normalize { + textRunes = algo.NormalizeRunes(textRunes) + } set = append(set, term{ typ: typ, inv: inv, - text: []rune(text), + text: textRunes, caseSensitive: caseSensitive, origText: origText}) switchSet = true -- cgit v1.2.3