This avoids the stat(2) of /etc/localtime per message scan if TZ isn't
set in the environment; that's the default case on this Linux system.
I can't see a way the TZ environment variable is likely to change
between messages, or that it's intended an invocation of scan(1), say,
copes with the timezone shifting underneath it by /etc/localtime being
changed.
if (tm->tm_isdst) /* if DST is in effect */
tw.tw_zone -= 60; /* reset to normal offset */
#else
- tzset();
+ {
+ static bool deja_vu;
+
+ if (!deja_vu) {
+ deja_vu = true;
+ tzset();
+ }
+ }
tw.tw_zone = -(timezone / 60);
#endif