From: Matthias Kilian Subject: Re: newsyslog To: Alvar Penning Cc: tech@openbsd.org Date: Wed, 1 Apr 2026 23:30:37 +0200 Hi, On Wed, Apr 01, 2026 at 10:41:28PM +0200, Alvar Penning wrote: > diff --git a/newsyslog.c b/newsyslog.c > index 0be4ed259b9..d4a62194ab3 100644 > --- a/newsyslog.c > +++ b/newsyslog.c > @@ -1251,12 +1251,12 @@ parseDWM(char *s) > > nd = mtab[tm.tm_mon]; > > - if (tm.tm_mon == 1) { > - if (((tm.tm_year + 1900) % 4 == 0) && > - ((tm.tm_year + 1900) % 100 != 0) && > - ((tm.tm_year + 1900) % 400 == 0)) { > - nd++; /* leap year, 29 days in february */ > - } > + /* leap year, 29 days in february */ > + if ((tm.tm_mon == 1) && ((tm.tm_year + 1900) % 4 == 0)) { > + if ((tm.tm_year + 1900) % 100 != 0) > + nd++; /* divisible by 4, not divisible by 100 */ > + else if ((tm.tm_year + 1900) % 400 == 0) > + nd++; /* divisible by 4, 100 and 400 */ > } > tm.tm_hour = tm.tm_min = tm.tm_sec = 0; While this looks correct to me, wouldn't something like this be better? --- newsyslog.c Tue Sep 23 08:09:56 2025 +++ newsyslog.c.new Wed Apr 1 23:28:07 2026 @@ -1253,8 +1253,8 @@ if (tm.tm_mon == 1) { if (((tm.tm_year + 1900) % 4 == 0) && - ((tm.tm_year + 1900) % 100 != 0) && - ((tm.tm_year + 1900) % 400 == 0)) { + (((tm.tm_year + 1900) % 100 != 0) || + ((tm.tm_year + 1900) % 400 == 0))) { nd++; /* leap year, 29 days in february */ } } Ciao, Kili