summaryrefslogtreecommitdiffstats
path: root/src/pattern.go
diff options
context:
space:
mode:
authorJunegunn Choi <junegunn.c@gmail.com>2017-01-09 09:52:17 +0900
committerJunegunn Choi <junegunn.c@gmail.com>2017-01-09 09:52:17 +0900
commita16d8f66a99ae365a57d114d5ee7d0a7ebc4cf5f (patch)
treea03c5b7bd5582695a7b02c828117c44e4a771e26 /src/pattern.go
parent45793d75c2d168d51be3578b8d785159ec81ff92 (diff)
Normalize pattern string before passing it to Algo function
Diffstat (limited to 'src/pattern.go')
-rw-r--r--src/pattern.go10
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