Timezone stuff and System V Verification Suite
Sun Jul 19 10:54:21 UTC 1987
I don't think that that mod is needed, the real problem is in
the data files, which are allowing that EWT nonsense to creep
into what should be pure EST/EDT stuff.
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. Those files will always provide
EST and EDT in tzname, no matter which happens to be the
most recent zone name (if the user says he wants EST and EDT
then that's what should be delivered, regardless of what the
current zone name happens to be).
Having said that, I have no real objection to the code either,
though I think I'd do it in zic so it only needs to be done
once (sort the ttis array so the "right" result is achieved
in tzset()). Of course the "time(0)" should be "time((time_t *)0)".
It makes more sense to fill in tzname with recent zone names
in cases where there have been several that could fit.
Or perhaps the "blessed" 2 zone names should be marked in the
data file to avoid surprises.
All this is just another nail in the coffin for tzname though
as far as I'm concerned, pretending that there are two (or
one) zone names, and that they can be characterised purely
by whether its dst or not is hopeless. Both the Sys V and BSD
standard timezone name stuff is trash, it all needs to be
discarded completely. (Somehow I think I've said this before...)
More information about the tz