| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Expand "Bring your own Bible" with the details a user needs to actually do it:
- the six-column TSV format with three real, tab-marked example rows and a
column legend;
- which columns are load-bearing -- clectio matches on Book+Chapter+Verse
(cols 1,4,5) and prints col 6; Abbrev/BookNum (cols 2,3) are ignored but must
be present;
- the Vulgate-versification requirement made explicit (a differently numbered
Bible misaligns), with the "start from vul.tsv, swap the text column" tip;
- pointer to the four ready corpora shipped with lectio, with a runnable drb
example;
- a "switching back to the Vulgate" note (the git-tracked text_*.lz blob is
overwritten by a CORPUS= build).
Docs only; no code change.
Claude-Session: https://claude.ai/code/session_01S1CD1u3tgSS4xNu6WHfp5a
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
List a whole month, one line per day: weekday, day, liturgical colour and
celebration name. Form-aware; colours the name on a tty and prints the colour
word (aligned column) always, so a piped file stays readable. Defaults to the
current month; accepts YYYY-MM or a bare month number (current year).
Needs no scripture text, so it never loads or decompresses the text blob.
Days-in-month and weekday are computed with days_from_civil (leap-correct);
a month outside the compiled range is reported, not guessed. No table/data
change; OF and EF build clean under -Wall -Wextra; binary unchanged at 666 KB.
Claude-Session: https://claude.ai/code/session_01S1CD1u3tgSS4xNu6WHfp5a
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- -a/--all and -g/--gospel override the compiled GOSPEL_ONLY default per run;
the reading text for both is always embedded, so this is free. Flags may
appear in any position alongside the optional date.
- WRAP config.h option wraps reading text at N columns; 0 (default) fits the
terminal via TIOCGWINSZ and leaves piped output one line per verse. Greedy,
space-breaking, UTF-8 aware (continuation bytes do not count as columns).
- Rework arg parsing into a small flag loop; expand -h usage.
No table/data change; OF and EF both build clean under -Wall -Wextra. Binary
grows ~4 KB (666 KB OF). Stays compile-time-first, suckless-style: the only
run-time options are the reading-set toggle and -h.
Claude-Session: https://claude.ai/code/session_01S1CD1u3tgSS4xNu6WHfp5a
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Two size wins:
- Replace the home-grown LZSS (2.0x) with DEFLATE: mktext gzips the text and
strips the gzip container to a raw DEFLATE stream; clectio decompresses it
with puff, Mark Adler's public-domain reference inflate (~200 lines, verified
byte-identical to gunzip on the OF/EF text, repetitive, random and empty
inputs). Text blob 671 KB -> 492 KB (OF), 164 KB -> 132 KB (EF), 2.7x.
- Build with -no-pie: clectio is a local CLI reading static embedded data with
no attack surface, so it needs no PIE/ASLR. The linker then bakes the string-
table pointers in at link time instead of emitting ~57 KB of runtime
relocations.
Net: OF 879 -> 662 KB, EF 266 -> 214 KB. Verified byte-identical to lectio.
The default build still needs only a compiler + libc; a CORPUS= rebuild now
also needs gzip. lz.h removed.
Claude-Session: https://claude.ai/code/session_01S1CD1u3tgSS4xNu6WHfp5a
|
| |
|
|
|
|
|
|
|
|
|
| |
Add a compile-time toggle in config.h: GOSPEL_ONLY=0 (default) prints every
reading; GOSPEL_ONLY=1 prints only the Gospel. The Gospel is matched by its
part label, so it works for both forms. Help and the compiled-settings line
report the mode. Also tidy print_day's header underline to match the width of
the "<form> for <date>" line instead of the reading count. No data change;
strict -Wsign-conversion clean in both modes.
Claude-Session: https://claude.ai/code/session_01S1CD1u3tgSS4xNu6WHfp5a
|
| |
|
|
|
|
|
|
| |
Change the hard `CC = cc` to `CC ?= cc` so an exported CC (e.g. CC=gcc) is
respected. Keeps the suckless default of cc for clones while letting a system
whose `cc` is shadowed use plain `make` without passing CC= each time.
Claude-Session: https://claude.ai/code/session_01S1CD1u3tgSS4xNu6WHfp5a
|
| |
|
|
|
|
|
|
|
|
|
| |
Make the build clean under -Wconversion -Wsign-conversion and -Wunused-function
(beyond the Makefile's -Wall -Wextra), so it compiles warning-free on stricter
setups and other compilers: size_t for the verse-index counters in load_text,
a cast in the LZSS matcher, and lz_unpack marked inline (it is unused in the
packer-only mktext translation unit). No behaviour change; packed output is
byte-identical.
Claude-Session: https://claude.ai/code/session_01S1CD1u3tgSS4xNu6WHfp5a
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Two QA-found bugs fixed:
- mktext now collapses runs of whitespace in verse text to a single space
(and trims), matching lectio's Fields-based rendering. The Vulgate source
has occasional double spaces that were leaking into the output.
- Regenerated gen/ with the hermetic, alias-fixed clectio-gen: the generator
no longer picks up the user's stale books.ini (which had silently dropped
~30 EF Ember-day lessons, e.g. St Lawrence-common Sir 45, Osee/Hosea 14,
2 Esdras/Nehemiah 8). Full range 2025-2054 now has 0 dropped readings.
Verified vs lectio: OF and EF 2026 are byte-identical (day names + verse
text, 0 mismatches); range boundaries 2025-01-01 / 2054-12-31 match; ASAN +
UBSAN clean over leap days, boundaries and edge cases; bad input never
crashes. Shipped total 1.28 MiB.
Claude-Session: https://claude.ai/code/session_01S1CD1u3tgSS4xNu6WHfp5a
|
|
|
clectio prints the Catholic liturgical day and its Mass readings for a date
with a single table lookup -- no computation, config file, network, or deps
beyond libc. The calendar, reading citations and scripture text are all
compiled in; the whole shipped package fits on a 1.44 MB floppy (~1.29 MiB)
and the binary is ~0.9 MB (OF) / ~0.3 MB (EF).
- suckless config.h: FORM_OF/FORM_EF, SIGLA_ENGLISH/SIGLA_LATIN, COLOR.
- Bring your own Bible: `make CORPUS=mybible.tsv` recompiles with any
Vulgate-numbered 6-column TSV; only the ~12k cited verses are embedded.
- The hard liturgical logic stays in lectio (Go, oracle-validated); its
clectio-gen emits the corpus-independent tables in gen/. The scripture text
is LZSS-packed (lz.h) to fit; mktext/bin2h resolve+embed it at build time.
- Verified byte-identical to lectio's readings; day names match 157/157 over
a 3-year sample. Default text: public-domain Latin Vulgate. ISC-licensed.
Claude-Session: https://claude.ai/code/session_01S1CD1u3tgSS4xNu6WHfp5a
|