=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/calendar/day.c,v retrieving revision 1.27 retrieving revision 1.31 diff -u -r1.27 -r1.31 --- src/usr.bin/calendar/day.c 2013/11/26 13:18:53 1.27 +++ src/usr.bin/calendar/day.c 2015/12/07 18:46:35 1.31 @@ -1,4 +1,4 @@ -/* $OpenBSD: day.c,v 1.27 2013/11/26 13:18:53 deraadt Exp $ */ +/* $OpenBSD: day.c,v 1.31 2015/12/07 18:46:35 espie Exp $ */ /* * Copyright (c) 1989, 1993, 1994 @@ -39,7 +39,6 @@ #include #include #include -#include #include "pathnames.h" #include "calendar.h" @@ -79,6 +78,14 @@ static struct fixs nmonths[13]; /* short national month names */ void +fill_print_date(struct match *m, struct tm *tm) +{ + if (strftime(m->print_date, sizeof(m->print_date), + daynames ? "%a %b %d" : "%b %d", tm) == 0) + m->print_date[sizeof(m->print_date) - 1] = '\0'; +} + +void setnnames(void) { char buf[80]; @@ -157,7 +164,7 @@ tp->tm_isdst = 0; tp->tm_hour = 12; *now = mktime(tp); - if (isleap(tp->tm_year + TM_YEAR_BASE)) + if (isleap(tp->tm_year + 1900)) cumdays = daytab[1]; else cumdays = daytab[0]; @@ -215,13 +222,10 @@ *(date + len - 4) = '\0'; tm.tm_year = atoi(date); - /* tm_year up TM_YEAR_BASE ... */ if (tm.tm_year < 69) /* Y2K */ - tm.tm_year += 2000 - TM_YEAR_BASE; - else if (tm.tm_year < 100) - tm.tm_year += 1900 - TM_YEAR_BASE; - else if (tm.tm_year > TM_YEAR_BASE) - tm.tm_year -= TM_YEAR_BASE; + tm.tm_year += 100; + else if (tm.tm_year > 1900) + tm.tm_year -= 1900; } #if DEBUG @@ -290,7 +294,7 @@ /* adjust bodun rate */ if (bodun && !bodun_always) bodun = !arc4random_uniform(3); - + /* Easter or Easter depending days */ if (flags & F_SPECIAL) vwd = v1; @@ -431,16 +435,16 @@ */ if (tp->tm_yday > 300 && tmtmp.tm_mon <= 1) variable_weekday(&vwd, tmtmp.tm_mon + 1, - tmtmp.tm_year + TM_YEAR_BASE + 1); + tmtmp.tm_year + 1900 + 1); else variable_weekday(&vwd, tmtmp.tm_mon + 1, - tmtmp.tm_year + TM_YEAR_BASE); + tmtmp.tm_year + 1900); day = cumdays[tmtmp.tm_mon + 1] + vwd; tmtmp.tm_mday = vwd; } v2 = day - tp->tm_yday; if ((v2 > v1) || (v2 < 0)) { - if ((v2 += isleap(tp->tm_year + TM_YEAR_BASE) ? 366 : 365) + if ((v2 += isleap(tp->tm_year + 1900) ? 366 : 365) <= v1) tmtmp.tm_year++; else if(!bodun || (day - tp->tm_yday) != -1) @@ -459,12 +463,7 @@ } (void)mktime(&tmtmp); - if (strftime(tmp->print_date, - sizeof(tmp->print_date), - /* "%a %b %d", &tm); Skip weekdays */ - "%b %d", &tmtmp) == 0) - tmp->print_date[sizeof(tmp->print_date) - 1] = '\0'; - + fill_print_date(tmp, &tmtmp); tmp->var = varp; tmp->next = NULL; return(tmp); @@ -516,7 +515,7 @@ if (vwd) { v1 = vwd; variable_weekday(&v1, tmtmp.tm_mon + 1, - tmtmp.tm_year + TM_YEAR_BASE); + tmtmp.tm_year + 1900); tmtmp.tm_mday = v1; } else tmtmp.tm_mday = dayp; @@ -527,11 +526,11 @@ if (flags & F_SPECIAL) { tmtmp.tm_mon = 0; /* Gee, mktime() is nice */ tmtmp.tm_mday = spev[v1].getev(tmtmp.tm_year + - TM_YEAR_BASE) + vwd; + 1900) + vwd; } else if (vwd) { v1 = vwd; variable_weekday(&v1, tmtmp.tm_mon + 1, - tmtmp.tm_year + TM_YEAR_BASE); + tmtmp.tm_year + 1900); tmtmp.tm_mday = v1; } else { /* Need the following to keep Feb 29 from @@ -553,11 +552,7 @@ if ((tmp = malloc(sizeof(struct match))) == NULL) err(1, NULL); tmp->when = ttmp; - if (strftime(tmp->print_date, - sizeof(tmp->print_date), - /* "%a %b %d", &tm); Skip weekdays */ - "%b %d", &tmtmp) == 0) - tmp->print_date[sizeof(tmp->print_date) - 1] = '\0'; + fill_print_date(tmp, &tmtmp); tmp->bodun = bodun && tdiff == -1; tmp->var = varp; tmp->next = NULL;