summaryrefslogtreecommitdiff
path: root/src/pattern.go
diff options
context:
space:
mode:
Diffstat (limited to 'src/pattern.go')
-rw-r--r--src/pattern.go20
1 files changed, 13 insertions, 7 deletions
diff --git a/src/pattern.go b/src/pattern.go
index 64296d71..8cb20983 100644
--- a/src/pattern.go
+++ b/src/pattern.go
@@ -301,7 +301,12 @@ func (p *Pattern) MatchItem(item *Item, withPos bool, slab *util.Slab) (*Result,
}
func (p *Pattern) basicMatch(item *Item, withPos bool, slab *util.Slab) (Offset, int, *[]int) {
- input := p.prepareInput(item)
+ var input []Token
+ if len(p.nth) == 0 {
+ input = []Token{Token{text: &item.text, prefixLength: 0}}
+ } else {
+ input = p.transformInput(item)
+ }
if p.fuzzy {
return p.iter(p.fuzzyAlgo, input, p.caseSensitive, p.normalize, p.forward, p.text, withPos, slab)
}
@@ -309,7 +314,12 @@ func (p *Pattern) basicMatch(item *Item, withPos bool, slab *util.Slab) (Offset,
}
func (p *Pattern) extendedMatch(item *Item, withPos bool, slab *util.Slab) ([]Offset, int, *[]int) {
- input := p.prepareInput(item)
+ var input []Token
+ if len(p.nth) == 0 {
+ input = []Token{Token{text: &item.text, prefixLength: 0}}
+ } else {
+ input = p.transformInput(item)
+ }
offsets := []Offset{}
var totalScore int
var allPos *[]int
@@ -353,11 +363,7 @@ func (p *Pattern) extendedMatch(item *Item, withPos bool, slab *util.Slab) ([]Of
return offsets, totalScore, allPos
}
-func (p *Pattern) prepareInput(item *Item) []Token {
- if len(p.nth) == 0 {
- return []Token{Token{text: &item.text, prefixLength: 0}}
- }
-
+func (p *Pattern) transformInput(item *Item) []Token {
if item.transformed != nil {
return *item.transformed
}