Apologies for the long turnaround time on this bug; I've been out for some routine surgery. Attached find the proposed fix for the Asia/Bishkek bug. I did before-and-after testing on the time zone files produced from the sources that are distributed from elsie.nci.nih.gov; the Asia/Bishkek file was the only one changed by the fix. The probable right course of action in the next release is to both include this fix and incorporate Paul Eggert's workaround (so that folks who throw new data files at old compilers get the right result). --ado *** 7.102/zic.c Tue Dec 4 15:20:50 2001 --- 7.104/zic.c Tue Dec 4 15:20:52 2001 *************** *** 1,6 **** #ifndef lint #ifndef NOID ! static char elsieid[] = "@(#)zic.c 7.102"; #endif /* !defined NOID */ #endif /* !defined lint */ --- 1,6 ---- #ifndef lint #ifndef NOID ! static char elsieid[] = "@(#)zic.c 7.104"; #endif /* !defined NOID */ #endif /* !defined lint */ *************** *** 1605,1614 **** typecnt = 0; charcnt = 0; /* - ** A guess that may well be corrected later. - */ - stdoff = 0; - /* ** Thanks to Earl Chew (earl@dnd.icp.nec.com.au) ** for noting the need to unconditionally initialize startttisstd. */ --- 1605,1610 ---- *************** *** 1615,1620 **** --- 1611,1620 ---- startttisstd = FALSE; startttisgmt = FALSE; for (i = 0; i < zonecount; ++i) { + /* + ** A guess that may well be corrected later. + */ + stdoff = 0; zp = &zpfirst[i]; usestart = i > 0 && (zp - 1)->z_untiltime > min_time; useuntil = i < (zonecount - 1); *************** *** 1634,1641 **** if (usestart) { addtt(starttime, type); usestart = FALSE; ! } ! else if (stdoff != 0) addtt(min_time, type); } else for (year = min_year; year <= max_year; ++year) { if (useuntil && year > zp->z_untilrule.r_hiyear) --- 1634,1640 ---- if (usestart) { addtt(starttime, type); usestart = FALSE; ! } else if (stdoff != 0) addtt(min_time, type); } else for (year = min_year; year <= max_year; ++year) { if (useuntil && year > zp->z_untilrule.r_hiyear)
participants (1)
-
Olson, Arthur David (NCI)