diff options
author | siikamiika <siikamiika@users.noreply.github.com> | 2019-10-30 12:04:49 +0200 |
---|---|---|
committer | siikamiika <siikamiika@users.noreply.github.com> | 2019-11-23 17:40:52 +0200 |
commit | d19f447b80e286610a83114e2294a976a27adca5 (patch) | |
tree | bc832eacbfa8d67fdcf3d708e7cbe3a2e053c245 /ext/bg/js/api.js | |
parent | c35a05cd62d43ff435c022a353de55510b020277 (diff) |
fix stem length checking
Starting from the end and stopping at first match doesn't guarantee
correctness. Starting from the beginning does.
Diffstat (limited to 'ext/bg/js/api.js')
-rw-r--r-- | ext/bg/js/api.js | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/ext/bg/js/api.js b/ext/bg/js/api.js index 064903ca..174a439e 100644 --- a/ext/bg/js/api.js +++ b/ext/bg/js/api.js @@ -90,9 +90,10 @@ async function apiTextParse(text, optionsContext) { definitions = dictTermsSort(definitions); const {expression, source, reading} = definitions[0]; - let stemLength = source.length; - while (source[stemLength - 1] !== expression[stemLength - 1]) { - --stemLength; + let stemLength = 0; + const shortest = Math.min(source.length, expression.length); + while (stemLength < shortest && source[stemLength] === expression[stemLength]) { + ++stemLength; } const offset = source.length - stemLength; |