mirror of
https://git.pumpin.online/funkpower/typikon.git
synced 2026-10-23 03:07:12 +00:00
one place decides how the reckoning reads
The single-day view said 'the Typikon, obliging under Ruthenian particular law' while the week view above the same data said 'Ruthenian particular law'. The second was actively wrong: it named the law while printing the Typikon's levels.
This commit is contained in:
+18
-9
@@ -161,8 +161,18 @@ fn elide(text: &str, width: usize) -> String {
|
|||||||
format!("{}\u{2026}", head.trim_end_matches([' ', ',', ';']))
|
format!("{}\u{2026}", head.trim_end_matches([' ', ',', ';']))
|
||||||
}
|
}
|
||||||
|
|
||||||
fn print_days(days: &[Day], jur: &Jurisdiction, source: Source, verbose: bool) {
|
/// How this run's reckoning reads, for the header of either view.
|
||||||
|
fn describe_reckoning(jur: &Jurisdiction) -> String {
|
||||||
let rule = rules::get(jur.rule);
|
let rule = rules::get(jur.rule);
|
||||||
|
let shown = jur.discipline.map(rules::get).unwrap_or(rule);
|
||||||
|
if std::ptr::eq(shown, rule) {
|
||||||
|
rule.title.to_string()
|
||||||
|
} else {
|
||||||
|
format!("{}, obliging under {}", shown.title, rule.title)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fn print_days(days: &[Day], jur: &Jurisdiction, source: Source, verbose: bool) {
|
||||||
if let [d] = days {
|
if let [d] = days {
|
||||||
let mut head = format!(" {} {}", d.weekday.name(), d.date.long());
|
let mut head = format!(" {} {}", d.weekday.name(), d.date.long());
|
||||||
let civil_md = format!("{} {}", d.date.day(), typikon::calendars::MONTHS[(d.date.month() - 1) as usize]);
|
let civil_md = format!("{} {}", d.date.day(), typikon::calendars::MONTHS[(d.date.month() - 1) as usize]);
|
||||||
@@ -176,13 +186,12 @@ fn print_days(days: &[Day], jur: &Jurisdiction, source: Source, verbose: bool) {
|
|||||||
Source::Config => " (from config)".into(),
|
Source::Config => " (from config)".into(),
|
||||||
Source::Default => String::new(),
|
Source::Default => String::new(),
|
||||||
};
|
};
|
||||||
let shown = jur.discipline.map(rules::get).unwrap_or(rule);
|
println!(
|
||||||
let discipline = if std::ptr::eq(shown, rule) {
|
" {} \u{b7} {} \u{b7} {} usage{from}",
|
||||||
rule.title.to_string()
|
jur.name,
|
||||||
} else {
|
describe_reckoning(jur),
|
||||||
format!("{}, obliging under {}", shown.title, rule.title)
|
jur.tradition.key()
|
||||||
};
|
);
|
||||||
println!(" {} \u{b7} {discipline} \u{b7} {} usage{from}", jur.name, jur.tradition.key());
|
|
||||||
println!();
|
println!();
|
||||||
let sign = d.rank.map(|r| format!("{} ", r.sign())).unwrap_or_default();
|
let sign = d.rank.map(|r| format!("{} ", r.sign())).unwrap_or_default();
|
||||||
if d.emoji.is_empty() {
|
if d.emoji.is_empty() {
|
||||||
@@ -217,7 +226,7 @@ fn print_days(days: &[Day], jur: &Jurisdiction, source: Source, verbose: bool) {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
println!("\n {} \u{b7} {}\n", jur.name, rule.title);
|
println!("\n {} \u{b7} {}\n", jur.name, describe_reckoning(jur));
|
||||||
// The glyph is two columns wide in a terminal and one char to Rust, which
|
// The glyph is two columns wide in a terminal and one char to Rust, which
|
||||||
// is why the arithmetic below looks off by one.
|
// is why the arithmetic below looks off by one.
|
||||||
let fixed = 2 + 2 + 10 + 1 + 1 + 32;
|
let fixed = 2 + 2 + 10 + 1 + 1 + 32;
|
||||||
|
|||||||
Reference in New Issue
Block a user