static int
init_timezone(PyObject *m)
{
+#define ADD_INT(NAME, VALUE) do { \
+ if (PyModule_AddIntConstant(m, NAME, VALUE) < 0) { \
+ return -1; \
+ } \
+} while (0)
+
assert(!PyErr_Occurred());
/* This code moved from PyInit_time wholesale to allow calling it from
#if !defined(MS_WINDOWS) || defined(MS_WINDOWS_DESKTOP) || defined(MS_WINDOWS_SYSTEM)
tzset();
#endif
- PyModule_AddIntConstant(m, "timezone", _Py_timezone);
+ ADD_INT("timezone", _Py_timezone);
#ifdef HAVE_ALTZONE
- PyModule_AddIntConstant(m, "altzone", altzone);
+ ADD_INT("altzone", altzone);
#else
- PyModule_AddIntConstant(m, "altzone", _Py_timezone-3600);
+ ADD_INT("altzone", _Py_timezone-3600);
#endif
- PyModule_AddIntConstant(m, "daylight", _Py_daylight);
+ ADD_INT("daylight", _Py_daylight);
#ifdef MS_WINDOWS
TIME_ZONE_INFORMATION tzinfo = {0};
GetTimeZoneInformation(&tzinfo);
PyObject *tzname_obj;
if (janzone < julyzone) {
/* DST is reversed in the southern hemisphere */
- PyModule_AddIntConstant(m, "timezone", julyzone);
- PyModule_AddIntConstant(m, "altzone", janzone);
- PyModule_AddIntConstant(m, "daylight", janzone != julyzone);
+ ADD_INT("timezone", julyzone);
+ ADD_INT("altzone", janzone);
+ ADD_INT("daylight", janzone != julyzone);
tzname_obj = Py_BuildValue("(zz)", julyname, janname);
} else {
- PyModule_AddIntConstant(m, "timezone", janzone);
- PyModule_AddIntConstant(m, "altzone", julyzone);
- PyModule_AddIntConstant(m, "daylight", janzone != julyzone);
+ ADD_INT("timezone", janzone);
+ ADD_INT("altzone", julyzone);
+ ADD_INT("daylight", janzone != julyzone);
tzname_obj = Py_BuildValue("(zz)", janname, julyname);
}
if (PyModule_Add(m, "tzname", tzname_obj) < 0) {
return -1;
}
#endif // !HAVE_DECL_TZNAME
+#undef ADD_INT
if (PyErr_Occurred()) {
return -1;