diff options
author | Junegunn Choi <junegunn.c@gmail.com> | 2017-01-09 09:52:17 +0900 |
---|---|---|
committer | Junegunn Choi <junegunn.c@gmail.com> | 2017-01-09 09:52:17 +0900 |
commit | a16d8f66a99ae365a57d114d5ee7d0a7ebc4cf5f (patch) | |
tree | a03c5b7bd5582695a7b02c828117c44e4a771e26 /src/pattern.go | |
parent | 45793d75c2d168d51be3578b8d785159ec81ff92 (diff) |
Normalize pattern string before passing it to Algo function
Diffstat (limited to 'src/pattern.go')
-rw-r--r-- | src/pattern.go | 10 |
1 files changed, 7 insertions, 3 deletions
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 |