Fix --with-nth option when query is non-empty

pull/116/head
Junegunn Choi 10 years ago
parent f670f4f076
commit 4f40314433

@ -235,9 +235,10 @@ func (p *Pattern) fuzzyMatch(chunk *Chunk) []*Item {
input := p.prepareInput(item)
if sidx, eidx := p.iter(FuzzyMatch, input, p.text); sidx >= 0 {
matches = append(matches, &Item{
text: item.text,
offsets: []Offset{Offset{int32(sidx), int32(eidx)}},
rank: Rank{0, 0, item.rank.index}})
text: item.text,
origText: item.origText,
offsets: []Offset{Offset{int32(sidx), int32(eidx)}},
rank: Rank{0, 0, item.rank.index}})
}
}
return matches
@ -262,9 +263,10 @@ func (p *Pattern) extendedMatch(chunk *Chunk) []*Item {
}
if len(offsets) == len(p.terms) {
matches = append(matches, &Item{
text: item.text,
offsets: offsets,
rank: Rank{0, 0, item.rank.index}})
text: item.text,
origText: item.origText,
offsets: offsets,
rank: Rank{0, 0, item.rank.index}})
}
}
return matches

@ -85,3 +85,21 @@ func TestCaseSensitivity(t *testing.T) {
t.Error("Invalid case conversion")
}
}
func TestOrigText(t *testing.T) {
strptr := func(str string) *string {
return &str
}
pattern := BuildPattern(MODE_EXTENDED, CASE_SMART, []Range{}, nil, []rune("jg"))
for _, fun := range []func(*Chunk) []*Item{pattern.fuzzyMatch, pattern.extendedMatch} {
chunk := Chunk{
&Item{text: strptr("junegunn"), origText: strptr("junegunn.choi")},
}
matches := fun(&chunk)
if *matches[0].text != "junegunn" || *matches[0].origText != "junegunn.choi" ||
matches[0].offsets[0][0] != 0 || matches[0].offsets[0][1] != 5 {
t.Error("Invalid match result", matches)
}
}
}

Loading…
Cancel
Save