On Jan 19, 2018, at 8:10 PM, Christos Zoulas <christos@zoulas.com> wrote:
If we are going to standardize those two, I think that tm_zone should become an array instead of a pointer,
That breaks binary compatibility on any OS that has tm_zone and documents it; that matters, at minimum, with any OS from Cupertino, so I very much doubt Apple will pick that up.
or at least the "char *" pointer lifetime and ownership should be defined.
That's more work, but it doesn't break binary compatibility.
Also if we are changing tm_zone, then tm_gmtoff should be an int not a long.
Same binary-compatibility problem, at least on LP64 platforms.
Does anyone remember why it was chosen to be a long? 16 bit integers on pdp 11? Does "struct tm" go that far back?
struct tm goes all the way back to, at minimum, V7, which definitely ran on PDP-11's. tm_zone doesn't go back as far, and the PDP-11 may not have been a concern at that point, but there may have still have been ILP16 or I16LP32 platforms at the time.