You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@annotator.apache.org by ge...@apache.org on 2020/11/20 21:21:07 UTC
[incubator-annotator] 09/14: Compare *extra* pre/suffix lengths
(ignore sunk costs)
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 8459b0e7a0e455f6bd6c124d7a8f45479a13bb59
Author: Gerben <ge...@treora.com>
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‽');
}