watch out for month overflow

SCCS-file: zic.c
SCCS-SID: 2.29
This commit is contained in:
Arthur David Olson
2012-07-18 03:01:40 -04:00
committed by Paul Eggert
parent 303e209ab1
commit f46a98402b
+14 -5
View File
@@ -1388,11 +1388,20 @@ register long wantedy;
wday += 7; wday += 7;
} }
while (wday != rp->r_wday) { while (wday != rp->r_wday) {
if (rp->r_dycode == DC_DOWGEQ) if (rp->r_dycode == DC_DOWGEQ) {
i = 1; dayoff = tadd(dayoff, (long) 1);
else i = -1; ++wday;
dayoff = tadd(dayoff, i); ++i;
wday = (wday + i + 7) % 7; } else {
dayoff = tadd(dayoff, (long) -1);
--wday;
--i;
}
wday = (wday + 7) % 7;
}
if (i < 0 || i >= mon_lengths[isleap(y)][m]) {
error("no day in month matches rule");
exit(1);
} }
} }
t = dayoff * SECS_PER_DAY; t = dayoff * SECS_PER_DAY;