From 1bebd6f4f5fac7c98ad01696fd819c3c82e41ec6 Mon Sep 17 00:00:00 2001 From: Junegunn Choi Date: Fri, 18 Nov 2022 16:18:11 +0900 Subject: Fix panic on inverse match query with `--tiebreak=chunk` Fix #3055 --- src/result.go | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) (limited to 'src/result.go') diff --git a/src/result.go b/src/result.go index c4acb5fa..1212cabe 100644 --- a/src/result.go +++ b/src/result.go @@ -50,20 +50,21 @@ func buildResult(item *Item, offsets []Offset, score int) Result { // Higher is better val = math.MaxUint16 - util.AsUint16(score) case byChunk: - b := minBegin - e := maxEnd - l := item.text.Length() - for ; b >= 1; b-- { - if unicode.IsSpace(item.text.Get(b - 1)) { - break + if validOffsetFound { + b := minBegin + e := maxEnd + for ; b >= 1; b-- { + if unicode.IsSpace(item.text.Get(b - 1)) { + break + } } - } - for ; e < l; e++ { - if unicode.IsSpace(item.text.Get(e)) { - break + for ; e < numChars; e++ { + if unicode.IsSpace(item.text.Get(e)) { + break + } } + val = util.AsUint16(e - b) } - val = util.AsUint16(e - b) case byLength: val = item.TrimLength() case byBegin, byEnd: -- cgit v1.2.3