Handling of uninitialized tm_gmtoff and tm_zone
It is possible that mktime, strftime, etc?, may be called with a struct tm that has not had non-standard members initialized. How does tzcode deal with these cases? (It _looks_ like strftime handles it badly; I can't figure out what, if anything, the mktime implementation does with these members).
random832@fastmail.us wrote:
It is possible that mktime, strftime, etc?, may be called with a struct tm that has not had non-standard members initialized. How does tzcode deal with these cases? (It_looks_ like strftime handles it badly; I can't figure out what, if anything, the mktime implementation does with these members).
Do you have specific uses in mind? In general, common practice often disagrees with a strict (perhaps overly strict?) reading of the standards here. For example, glibc strftime also handles %Z "badly" in the sense that if a program calls strftime %Z with a struct tm that has not had tm_zone initialized properly, undefined behavior results. In practice people seem to prefer glibc's behavior (which often results in more-accurate %Z output), and I'm inclined to think it's more a bug or lack-of-clarity in the standards than a bug in the implementations.
participants (2)
-
Paul Eggert -
random832ļ¼ fastmail.us