Fix apostrophe and single quote ambiguity in dialogue (#2271)

This commit is contained in:
Veronica Berglyd Olsen
2025-04-17 17:25:33 +02:00
parent ba9adfb7f8
commit f72e96662a
2 changed files with 7 additions and 7 deletions
+2 -2
View File
@@ -93,7 +93,7 @@ class RegExPatterns:
if CONFIG.dialogStyle in (1, 3):
qO = CONFIG.fmtSQuoteOpen.strip()[:1]
qC = CONFIG.fmtSQuoteClose.strip()[:1]
if qO == qC:
if qO == qC or qC in self.AMBIGUOUS:
rx.append(f"(?:\\B{qO}.+?{qC}\\B)")
else:
rx.append(f"(?:{qO}[^{qO}]+{qC})")
@@ -102,7 +102,7 @@ class RegExPatterns:
if CONFIG.dialogStyle in (2, 3):
qO = CONFIG.fmtDQuoteOpen.strip()[:1]
qC = CONFIG.fmtDQuoteClose.strip()[:1]
if qO == qC:
if qO == qC or qC in self.AMBIGUOUS:
rx.append(f"(?:\\B{qO}.+?{qC}\\B)")
else:
rx.append(f"(?:{qO}[^{qO}]+{qC})")
+5 -5
View File
@@ -310,11 +310,11 @@ def testTextPatterns_DialogueStyle():
assert allMatches(regEx, 'one "two" three') == []
# Check with no whitespace, single quote
assert allMatches(regEx, "one\u2018two\u2019three") == [
[("\u2018two\u2019", 3, 8)]
]
assert allMatches(regEx, "one\u2018two\u2019 three") == [
[("\u2018two\u2019", 3, 8)]
# The apostrophe ambiguity rule should kick in here
assert allMatches(regEx, "one\u2018two\u2019three") == []
assert allMatches(regEx, "one\u2018two\u2019 three") == []
assert allMatches(regEx, "one \u2018two\u02bc three\u2019 four") == [
[("\u2018two\u02bc three\u2019", 4, 16)],
]
# Check with no whitespace, double quote