Index: aoc2024.c ================================================================== --- aoc2024.c +++ aoc2024.c @@ -5,10 +5,20 @@ #include #include #include "aocdailies.h" #include "aocutils.h" + +void aoc202404(char *data, size_t len) { + (void)len; // unused argument + // assume data is well-formatted and has the same number of rows and columns + unsigned cols = strchr(data, '\n') - data, rows = cols; + printf("data has %u cols, first three rows start with %c%c, %c%c, and %c%c.\n", + rows, data[0], data[1], + data[1*(cols+1)], data[1*(cols+1)+1], + data[2*(cols+1)], data[2*(cols+1)+1]); +} void aoc202403(char *data, size_t len) { (void)len; // unused argument unsigned sumproducts = 0, sumproducts2 = 0, term[2]; char *rest = data; Index: aocdailies.c ================================================================== --- aocdailies.c +++ aocdailies.c @@ -4,10 +4,11 @@ aocfunc *aocselect(unsigned y, unsigned d) { aocfunc *p; switch (y * 100 + d) { default: p = NULL; break; + case 202404: p = aoc202404; break; case 202403: p = aoc202403; break; case 202402: p = aoc202402; break; case 202401: p = aoc202401; break; #if 0 Index: aocdailies.h ================================================================== --- aocdailies.h +++ aocdailies.h @@ -4,10 +4,11 @@ #include typedef void aocfunc(char *, size_t); aocfunc *aocselect(unsigned, unsigned); +aocfunc aoc202404; aocfunc aoc202403; aocfunc aoc202402; aocfunc aoc202401; #if 0