Kaydet (Commit) e6a4b7bf authored tarafından Guido van Rossum's avatar Guido van Rossum

timezone support for macintosh (Jack)

üst 5bd919b6
......@@ -89,6 +89,37 @@ extern int ftime();
static int floatsleep Py_PROTO((double));
static double floattime Py_PROTO(());
#ifdef macintosh
/* Our own timezone. We have enough information to deduce whether
** DST is on currently, but unfortunately we cannot put it to good
** use because we don't know the rules (and that is needed to have
** localtime() return correct tm_isdst values for times other than
** the current time. So, we cop out and only tell the user the current
** timezone.
*/
static long timezone;
static void
initmactimezone()
{
MachineLocation loc;
long delta;
ReadLocation(&loc);
if (loc.latitude == 0 && loc.longitude == 0 && loc.u.gmtDelta == 0)
return;
delta = loc.u.gmtDelta & 0x00FFFFFF;
if (delta & 0x00800000)
delta |= 0xFF000000;
timezone = -delta;
}
#endif /* macintosh */
static PyObject *
time_time(self, args)
PyObject *self;
......@@ -430,6 +461,11 @@ inittime()
ins(d, "tzname",
Py_BuildValue("(zz)", wintername, summername));
}
#else
#ifdef macintosh
initmactimezone();
ins(d, "timezone", PyInt_FromLong(timezone));
#endif /* macintosh */
#endif /* HAVE_TM_ZONE */
#endif /* !HAVE_TZNAME */
if (PyErr_Occurred())
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment