I think the "right" fix is to remove the "Link" lines from the "northamerica" file (which provides the EST5EDT aliases) and put them in the "systemv" file, where the data should be an accurate System V emulation. ... Or perhaps the "blessed" 2 zone names should be marked in the data file to avoid surprises.
That's an idea. We (NCR) are really looking for the best of both worlds. We like the flexibility of the PD ctime but need to pass the SVVS as well as provide compatibility for existing customers. The only problem has been that of tzname().
Both the Sys V and BSD standard timezone name stuff is trash, it all needs to be discarded completely.
And the matter gets worse with SysVr3v1 (from ctime(3c) man page): [start of quote] tzset() uses the contents of the environment variable TZ to override the value of the different external variables. The syntax of TZ can be described as follows: TZ -> zone | zone signed_time | zone signed_time zone | zone signed_time zone dst zone -> letter letter letter signed_time -> sign time | time time -> hour | hour : minute | hour : minute : second dst -> signed_time | signed_time ; dst_date , dst_date | ; dst_date , dst_date dst_date -> julian | julian / time [...] For example, the setting for New Jersey in 1986 could be "EST5EDT4;117/2:00:00,299/2:00:00" [...] A southern hemisphere setting such as the Cook Islands could be "KDT9:30KST10:00;64/5:00,303/20:00" [end of quote] There is a new extern long to go along with timezone called "altzone" which holds the value of the daylight saving time "timezone" offset. The SVID, however, does not reflect this "improvement" nor apparently will the SVVS. The "Future Directions" section of the SVID does mention the fractional hours/sign component in the middle of the TZ variable. The ctime(3c) man page also describes two new routines that allow user control of the formatting of the string as well as using non-english names (under the control of the env. var. LANGUAGE). -Mike Wescott wescott@ncrcae.Columbia.NCR.COM