#include "buffer.h" #include "caldate.h" #include "exit.h" #include "scan.h" #include "stralloc.h" #include "strerr.h" #define FATAL "saday: fatal: " void die_nomem(){strerr_die2x(111,FATAL,"out of memory");} static stralloc ss = {0}; void main(int argc, char **argv) { struct caldate cd; long day; int weekday; while (*++argv) { scan_ulong(*argv,&cd.year); if (0 < cd.year) { cd.month = 8; cd.day = 1; day = caldate_mjd(&cd); do { caldate_frommjd(&cd,--day,&weekday,(char *)0); } while (5 != weekday); if (!stralloc_ready(&ss,caldate_fmt((char *)0,&cd))) die_nomem(); ss.len = caldate_fmt(ss.s,&cd); if (ss.len) { buffer_put(buffer_1,ss.s,ss.len); buffer_putsflush(buffer_1,"\n"); } } } _exit(0); }