aboutsummaryrefslogtreecommitdiff
path: root/tools/extract_fiuv_ordo.ml
diff options
context:
space:
mode:
Diffstat (limited to 'tools/extract_fiuv_ordo.ml')
-rw-r--r--tools/extract_fiuv_ordo.ml21
1 files changed, 21 insertions, 0 deletions
diff --git a/tools/extract_fiuv_ordo.ml b/tools/extract_fiuv_ordo.ml
index 42d3b96..c9688a7 100644
--- a/tools/extract_fiuv_ordo.ml
+++ b/tools/extract_fiuv_ordo.ml
@@ -292,7 +292,28 @@ let extract_te_deum full_text =
| None -> String.length full_text
in
let span = String.sub full_text mat_start (laudes_start - mat_start) in
+ (* TWO negative phrasings the source actually uses, found live
+ (celebrant-rubrics-phase1 Phase 2, 2026-08-22): "non dicitur Te
+ Deum" (e.g. ordinary Time-after-Pentecost ferias, 27/28 November)
+ AND, separately, "sine Te Deum" (e.g. every Sunday, every Ember
+ day, every privileged Lenten/Passiontide feria carrying a
+ commemoration -- Advent I, 30 November: "...3a de homilia (cum
+ suo R), sine Te Deum."). The ORIGINAL version of this function
+ checked only the first phrasing, so "sine Te Deum" fell through
+ to the bare "Te Deum" substring test and was wrongly read as a
+ POSITIVE hit -- confirmed by grepping the raw pdftotext dump
+ directly against a first, uncorrected run's own output: EVERY
+ date this bug affected showed "sine Te Deum" in the source and
+ [Some true] in the fixture, a 100% correlation, not a handful of
+ coincidences. This is the SAME "does the source negate the
+ hymn's own name with a DIFFERENT word than the one this parser
+ already checks for" shape [find_word]'s own "Gloria Patri"
+ substring trap already documents for Gloria -- this trap simply
+ went unnoticed until Phase 2 actually compared the extracted
+ values against colitur's own output and against the raw text by
+ hand, rather than only checking coverage counts. *)
if contains span ~sub:"non dicitur Te Deum" then Some false
+ else if contains span ~sub:"sine Te Deum" then Some false
else if contains span ~sub:"Te Deum" then Some true
else None)