summaryrefslogtreecommitdiff
path: root/clectio.c
diff options
context:
space:
mode:
authorLukasz Kasprzak <lukas@labunix.xyz>2026-07-28 23:33:23 +0200
committerLukasz Kasprzak <lukas@labunix.xyz>2026-07-28 23:33:23 +0200
commit46e482552c35456ddc836720df0a44ba25f60544 (patch)
tree241d18be89022e7e0951b80752f7b2c3815de0e1 /clectio.c
parent4a0ab3d2f390a68b18c40b04269c46a6373c08f9 (diff)
downloadclectio-46e482552c35456ddc836720df0a44ba25f60544.tar.gz
clectio-46e482552c35456ddc836720df0a44ba25f60544.zip
feat: config.h GOSPEL_ONLY -- print all readings (default) or just the Gospel
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
Diffstat (limited to 'clectio.c')
-rw-r--r--clectio.c17
1 files changed, 11 insertions, 6 deletions
diff --git a/clectio.c b/clectio.c
index 6461e51..24cb4b6 100644
--- a/clectio.c
+++ b/clectio.c
@@ -67,18 +67,23 @@ static const char *citation(int r) {
static void print_day(long off, const char *datestr) {
const Day *d = &days[cal[off]];
- unsigned k, ri;
+ unsigned ri;
+ int n;
if (usecolor)
- printf("%s%s\033[0m", colansi[d->colour], names[d->name]);
+ printf("%s%s\033[0m\n", colansi[d->colour], names[d->name]);
else
- printf("%s \xc2\xb7 %s", names[d->name], colname[d->colour]);
- printf("\n%s for %s\n", FORMNAME, datestr);
- for (k = 0; k < d->rlen; k++)
+ printf("%s \xc2\xb7 %s\n", names[d->name], colname[d->colour]);
+ n = printf("%s for %s\n", FORMNAME, datestr) - 1; /* underline that line */
+ while (n-- > 0)
putchar('=');
putchar('\n');
for (ri = 0; ri < d->rlen; ri++) {
const Reading *r = &readings[rpool[d->roff + ri]];
unsigned v;
+#if GOSPEL_ONLY
+ if (strcmp(parts[r->part], "Gospel") != 0)
+ continue;
+#endif
printf("\n%s (%s)\n\n", parts[r->part], citation(rpool[d->roff + ri]));
for (v = 0; v < r->vlen; v++)
printf("%s\n", verse[vpool[r->voff + v]]);
@@ -95,7 +100,7 @@ int main(int argc, char **argv) {
if (argc > 1 && (!strcmp(argv[1], "-h") || !strcmp(argv[1], "--help"))) {
fprintf(stderr, "usage: clectio [YYYY-MM-DD] (default: today)\n"
- " compiled: %s, %s, %d-%d\n", FORMNAME, SIGLANAME, EPOCH_Y, EPOCH_Y + (NDAYS / 366));
+ " compiled: %s, %s, %s, %d-%d\n", FORMNAME, SIGLANAME, READMODE, EPOCH_Y, EPOCH_Y + (NDAYS / 366));
return 0;
}
if (argc > 1) {