(1) call mktime() just before strftime(); it normalizes the buffer and
may set the timezone name for BSD systems...
(2) fake all of the timezone variables for the mac.
diff --git a/Modules/timemodule.c b/Modules/timemodule.c
index 3fedfa6..ce16ecc 100644
--- a/Modules/timemodule.c
+++ b/Modules/timemodule.c
@@ -321,6 +321,7 @@
buf.tm_mon--;
buf.tm_wday = (buf.tm_wday + 1) % 7;
buf.tm_yday--;
+ (void) mktime(&buf);
/* I hate these functions that presume you know how big the output
* will be ahead of time...
*/
@@ -471,8 +472,15 @@
}
#else
#ifdef macintosh
+ /* The only thing we can obtain is the current timezone
+ ** (and whether dst is currently _active_, but that is not what
+ ** we're looking for:-( )
+ */
initmactimezone();
ins(d, "timezone", PyInt_FromLong(timezone));
+ ins(d, "altzone", PyInt_FromLong(timezone));
+ ins(d, "daylight", PyInt_FromLong((long)0));
+ ins(d, "tzname", Py_BuildValue("(zz)", "", ""));
#endif /* macintosh */
#endif /* HAVE_TM_ZONE */
#endif /* !HAVE_TZNAME */