Originally sent to the wrong email address - sorry.
I ran ado's fix against all the timezones, and got good results.
This is the diff:
*** zdump_loop.c Tue Dec 2 11:17:01 2008
--- zdump_fix_ado.c Tue Dec 2 12:49:05 2008
***************
*** 312,322 ****
(void) strncpy(buf, abbr(&tm), sizeof (buf) - 1);
}
for (;;) {
! if (t >= cuthitime)
break;
newt = t + SECSPERHOUR * 12;
- if (newt >= cuthitime)
- break;
if (newt <= t)--- 312,320 ----
break;
newtmp = localtime(&newt);
(void) strncpy(buf, abbr(&tm), sizeof (buf) - 1);! if (t >= cuthitime || t >= cuthitime - SECSPERHOUR * 12)
}
for (;;) {
break;
newt = t + SECSPERHOUR * 12;However, isn't the check for "if (newt <= t) break" no longer needed?
if (newt <= t)
break;
newtmp = localtime(&newt);
----- Begin Forwarded Message -----
Date: Mon, 01 Dec 2008 16:21:00 -0500
From: "Olson, Arthur David (NIH/NCI) [E]" <olsona@dc37a.nci.nih.gov>Subject: Re: zdump loop problem
So...in the real world, does changing the zic.c lines reading...
if (t >= cuthitime)...to read...
break;
newt = t + SECSPERHOUR * 12;
if (newt >= cuthitime)
break;
if (t >= cuthitime || t >= cuthitime -
SECSPERHOUR * 12)
break;
newt = t + SECSPERHOUR * 12;
...result in working code? I'd particularly appreciate feedback from----- End Forwarded Message -----
Andreas Radke or other ArchLinux users.