scs@eskimo.com (Steve Summit) writes:
(As an aside: Is it my imagination, or was there a time when C had an array of 1, 2, or maybe more than 2 time zone strings, and you used tm_isdst as an index into them, such that tm_isdst functioned as a sort of an opaque token even though it had "dst" in its name?)
tzname, and it's still a supported API (documented in tzset(3) on Linux). INN uses it when generating Date headers if it's available and tm.tm_zone is not (in a bit of portability that is now probably only applicable to museum exhibitions): /* Now, get a pointer to the time zone abbreviation, and if there is enough room in the buffer, add it to the end of the date string as a comment. */ if (!local) { tz_name = "UTC"; } else { #if HAVE_STRUCT_TM_TM_ZONE tz_name = tm.tm_zone; #elif HAVE_TZNAME tz_name = tzname[(tm.tm_isdst > 0) ? 1 : 0]; #else tz_name = NULL; #endif } tzset(3): The tzset() function initializes the tzname variable from the TZ environment variable. This function is automatically called by the other time conversion functions that depend on the timezone. In a System-V-like environment, it will also set the variables timezone (seconds West of UTC) and daylight (to 0 if this timezone does not have any daylight saving time rules, or to nonzero if there is a time, past, present or future when daylight saving time applies). -- Russ Allbery (eagle@eyrie.org) <http://www.eyrie.org/~eagle/>