This is an automated email from the ASF dual-hosted git repository. gerben pushed a commit to branch import-dom-seek in repository https://gitbox.apache.org/repos/asf/incubator-annotator.git
commit 9ccb88c4a198c41104bf3839146eff8bdf55fd6d Author: Gerben <[email protected]> AuthorDate: Fri Nov 20 13:02:16 2020 +0100 Compare *extra* pre/suffix lengths (ignore sunk costs) --- packages/dom/src/text-quote/describe.ts | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/packages/dom/src/text-quote/describe.ts b/packages/dom/src/text-quote/describe.ts index ae79ad0..81cc4fa 100644 --- a/packages/dom/src/text-quote/describe.ts +++ b/packages/dom/src/text-quote/describe.ts @@ -95,20 +95,17 @@ async function abstractDescribeTextQuote<TChunk extends Chunk<string>>( seeker1.seekToChunk(target.startChunk, target.startIndex - prefix.length); seeker2.seekToChunk(unintendedMatch.startChunk, unintendedMatch.startIndex - prefix.length); const extraPrefix = readUntilDifferent(seeker1, seeker2, true); - let sufficientPrefix = extraPrefix !== undefined ? extraPrefix + prefix : undefined; // Count how many characters we’d need as a suffix to disqualify this match. seeker1.seekToChunk(target.endChunk, target.endIndex + suffix.length); seeker2.seekToChunk(unintendedMatch.endChunk, unintendedMatch.endIndex + suffix.length); const extraSuffix = readUntilDifferent(seeker1, seeker2, false); - let sufficientSuffix = extraSuffix !== undefined ? suffix + extraSuffix : undefined; // Use either the prefix or suffix, whichever is shortest. - if (sufficientPrefix !== undefined && (sufficientSuffix === undefined || sufficientPrefix.length <= sufficientSuffix.length)) { - prefix = sufficientPrefix; - // seeker.seekBy(sufficientPrefix.length - prefix.length) // Would be required if we’d skip the processed part. - } else if (sufficientSuffix !== undefined) { - suffix = sufficientSuffix; + if (extraPrefix !== undefined && (extraSuffix === undefined || extraPrefix.length <= extraSuffix.length)) { + prefix = extraPrefix + prefix; + } else if (extraSuffix !== undefined) { + suffix = suffix + extraSuffix; } else { throw new Error('Target cannot be disambiguated; how could that have happened‽'); }
