aboutsummaryrefslogtreecommitdiff
path: root/bin/main.ml
diff options
context:
space:
mode:
Diffstat (limited to 'bin/main.ml')
-rw-r--r--bin/main.ml18
1 files changed, 16 insertions, 2 deletions
diff --git a/bin/main.ml b/bin/main.ml
index f957190..582c776 100644
--- a/bin/main.ml
+++ b/bin/main.ml
@@ -397,13 +397,27 @@ let readings_line ~lang ~sigla (d : (Rite_ef.Vocab_ef.season, Rite_ef.Vocab_ef.r
least surprising choice for a machine-readable field). Unlike
[formulary], [d.creed] is a plain [bool] with no [option] to guard: a
rite that has not implemented the rule answers [false] outright, so
- there is no third "unknown" state this column could ever need to print. *)
+ there is no third "unknown" state this column could ever need to print.
+
+ Whole-branch review fix round: {!Colitur_kernel.Mass_formulary.t.said}
+ itself gained an [option] (its own citation has the full account --
+ [None] exactly for [Votive], where the shipped data genuinely names no
+ slug for the Mass actually said). This column's own OUTPUT does not
+ change for that reason: when [said] is [None] it falls back to
+ [d.observed]'s own slug -- the SAME value this column always printed
+ for a [Votive] day before [said] became honest, and it is a value this
+ function already has in scope regardless of [via]. So this is not
+ "print a placeholder for the missing case", it is "the value was
+ already available from a different field, and still is". *)
let rubrics_line (d : (Rite_ef.Vocab_ef.season, Rite_ef.Vocab_ef.rank) Colitur_kernel.Liturgical_day.t)
=
let said, via =
match d.Colitur_kernel.Liturgical_day.formulary with
| Some f ->
- ( Colitur_kernel.Slug.to_string f.Colitur_kernel.Mass_formulary.said,
+ ( Colitur_kernel.Slug.to_string
+ (match f.Colitur_kernel.Mass_formulary.said with
+ | Some s -> s
+ | None -> d.Colitur_kernel.Liturgical_day.observed.Colitur_kernel.Celebration.slug),
Colitur_kernel.Mass_formulary.source_to_string f.Colitur_kernel.Mass_formulary.via )
| None -> ("-", "-")
in