=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/calendar/io.c,v retrieving revision 1.25 retrieving revision 1.29 diff -u -r1.25 -r1.29 --- src/usr.bin/calendar/io.c 2004/01/14 23:54:11 1.25 +++ src/usr.bin/calendar/io.c 2005/04/15 14:28:56 1.29 @@ -1,4 +1,4 @@ -/* $OpenBSD: io.c,v 1.25 2004/01/14 23:54:11 millert Exp $ */ +/* $OpenBSD: io.c,v 1.29 2005/04/15 14:28:56 otto Exp $ */ /* * Copyright (c) 1989, 1993, 1994 @@ -39,7 +39,7 @@ #if 0 static const char sccsid[] = "@(#)calendar.c 8.3 (Berkeley) 3/25/94"; #else -static char rcsid[] = "$OpenBSD: io.c,v 1.25 2004/01/14 23:54:11 millert Exp $"; +static const char rcsid[] = "$OpenBSD: io.c,v 1.29 2005/04/15 14:28:56 otto Exp $"; #endif #endif /* not lint */ @@ -118,13 +118,31 @@ } else bodun_maybe = 0; continue; - } - if (bodun_maybe && strncmp(buf, "BODUN=", 6) == 0) { + } else if (strncmp(buf, "CALENDAR=", 9) == 0) { + char *ep; + + if (buf[9] == '\0') + calendar = 0; + else if (!strcasecmp(buf + 9, "julian")) { + calendar = JULIAN; + errno = 0; + julian = strtoul(buf + 14, &ep, 10); + if (buf[0] == '\0' || *ep != '\0') + julian = 13; + if ((errno == ERANGE && julian == ULONG_MAX) || + julian > 14) + errx(1, "Julian calendar offset is too large"); + } else if (!strcasecmp(buf + 9, "gregorian")) + calendar = GREGORIAN; + else if (!strcasecmp(buf + 9, "lunar")) + calendar = LUNAR; + } else if (bodun_maybe && strncmp(buf, "BODUN=", 6) == 0) { bodun++; if (prefix) free(prefix); if ((prefix = strdup(buf + 6)) == NULL) err(1, NULL); + continue; } /* User defined names for special events */ if ((p = strchr(buf, '='))) { @@ -178,7 +196,7 @@ int len = l1 + l2 + 2; if ((cur_evt->ldesc = malloc(len)) == NULL) - err(1, "malloc"); + err(1, NULL); snprintf(cur_evt->ldesc, len, "\t%s %s", prefix, p + 1); } else if ((cur_evt->ldesc = @@ -359,8 +377,8 @@ (void)dup2(fderr, STDERR_FILENO); (void)close(fderr); } - execl(_PATH_CPP, "cpp", "-traditional", "-P", "-I.", - _PATH_INCLUDE, (char *)NULL); + execl(_PATH_CPP, "cpp", "-traditional", "-undef", "-U__GNUC__", + "-P", "-I.", _PATH_INCLUDE, (char *)NULL); warn(_PATH_CPP); _exit(1); }