> Very little, if anything, of strftime() needs to handle TZ, because it's > handed a const struct tm *, generated either by a call to localtime() or > gmtime() If generated by a call to localtime(), localtime() has already done > all the work of converting a time_t to local time, meaning that it's > localtime(), not strftime(), that uses TZ.
I just checked the tip-of-the-main-branch GNU libc, and, in the time subdirectory: strftime_l.c does *not* call getenv(), and thus strftime() does *not* directly look at TZ; tzset.c *does* call getenv("TZ") - which it has to do, as it sets the current time information for the current process based on the setting of TZ. I'll look at getting the man pages fixed.