>
...when tm_gmtoff was introduced, there was no tm_gmtoff in POSIX or, for that matter, in most UN*Xes (was it in *any* UN*Xes before tzcode put it in?)...
Some tm_gmtoff history. One general note: the earliest time zone package work was influenced by what had been done for UNIX System V, BSD, and HP-UX.
A source for a UNIX System V manual:
http://bitsavers.trailing-edge.com/pdf/att/3b1/999-801-312IS_ATT_UNIX_PC_System_V_Users_Manual_Volume_1.pdfSystem V version 3.51 (1986) did not have tm_gmtoff.
A source for BSD-derived manuals:
https://man.freebsd.org/cgi/man.cgi/help.htmlNeither HP-UX 8.07 (1991) nor HP-UX 11.22 (2002) had tm_gmtoff, so it would not have been present before those dates.
The earliest 1986 version of the time zone package (distributed on request) did not have tm_gmtoff.
The 1987-02-28 version of the time zone package distributed via USENET's mod.sources did have tm_gmtoff.
https://groups.google.com/g/mod.sources/c/2Jq1irYs0w4tm_gmtoff and tm_zone were added at the same time; there's material in the IANA mailing list archive in late 1986 and early 1987 on making additions to struct tm.
And a month after the mod.sources posting...
From ado Sat Mar 28 15:13:19 1987
To: tz
Subject: Berkeley variant of time zone stuff
Status: RO
...
Berkeley forged ahead and added the "tm_gmtoff" and "tm_zone" elements to
the tm structure.
...
...meaning that it wasn't present in BSD before then.
@dashdashdo