Index: aoc.c ================================================================== --- aoc.c +++ aoc.c @@ -1,27 +1,22 @@ #include #include #include - -#include "aocutils.h" #include "aocdailies.h" // prototypes for all aocYYYYdd functions! +#include "aocutils.h" #define MAX_YEAR 2024 int main(int argc, char **argv) { unsigned y = 0, d = 0; char dataname[99]; if (argc >= 3) { char *err; y = strtoul(argv[1], &err, 10); - if (err && *err) y = 0; - if (y < 2015) y = 0; - if (y > MAX_YEAR) y = 0; + if (*err || (y < 2015) || (y > MAX_YEAR)) y = 0; d = strtoul(argv[2], &err, 10); - if (err && *err) d = 0; - if (d < 1) d = 0; - if (d > 25) d = 0; + if (*err || (d < 1) || (d > 25)) d = 0; if (argc >= 4) { sprintf(dataname, "%.98s", argv[3]); } else { sprintf(dataname, ".%04u%02u.txt", y, d); } @@ -38,8 +33,8 @@ size_t ilen = slurp(&input, dataname); // call the right function aocfunc *p = aocselect(y, d); if (p) p(input, ilen); - else fprintf(stderr, "Impossible!\n"); + else fprintf(stderr, "Error: aoc%04u%02u() is missing.\n", y, d); free(input); } Index: aoc2024.c ================================================================== --- aoc2024.c +++ aoc2024.c @@ -2,11 +2,10 @@ #include #include #include #include #include - #include "aocdailies.h" #include "aocutils.h" static size_t rcmap(unsigned size, unsigned row, unsigned col) { return row * (size + 1) + col;