Michael H Deckers wrote:
POSIX does not say anything about the setting of the tm_isdst member for a given TZ string
Yes it does. If what you're saying is that a POSIX implementation can set tm_isdst=0 during Irish Standard Time when TZ='IST-1GMT0,M10.5.0,M3.5.0/1', then taking that idea to its logical conclusion a POSIX implementation can set tm_isdst=0 during Pacific Daylight Time when TZ='PST8PDT,M3.2.0,M11.1.0'. Or the implementation could go further and set tm_isdst=1 during odd-numbered seconds and tm_isdst=0 during even-numbered seconds, because "POSIX does not say anything". That's not how real systems work and that's not how POSIX is intended to work. POSIX's description of TZ makes it clear that the 'dst' part of the TZ string is intended for use when daylight saving time (a.k.a. "the alternative timezone") is in effect, and its description of is_dst under time.h makes it clear that tm_isdst should be positive when daylight saving time is in effect and zero when it is not in effect.