bpo-24643: Fix "#define timezone _timezone" clashes on Windows (GH-12… · python/cpython@6673dec

Original file line numberDiff line numberDiff line change

@@ -38,6 +38,16 @@

3838

# include <sanitizer/msan_interface.h>

3939

#endif

4040
41+

#ifdef _MSC_VER

42+

#define _Py_timezone _timezone

43+

#define _Py_daylight _daylight

44+

#define _Py_tzname _tzname

45+

#else

46+

#define _Py_timezone timezone

47+

#define _Py_daylight daylight

48+

#define _Py_tzname tzname

49+

#endif

50+
4151

#define SEC_TO_NS (1000 * 1000 * 1000)

4252
4353

/* Forward declarations */

@@ -1600,18 +1610,18 @@ init_timezone(PyObject *m)

16001610

#ifdef HAVE_DECL_TZNAME

16011611

PyObject *otz0, *otz1;

16021612

tzset();

1603-

PyModule_AddIntConstant(m, "timezone", timezone);

1613+

PyModule_AddIntConstant(m, "timezone", _Py_timezone);

16041614

#ifdef HAVE_ALTZONE

16051615

PyModule_AddIntConstant(m, "altzone", altzone);

16061616

#else

1607-

PyModule_AddIntConstant(m, "altzone", timezone-3600);

1617+

PyModule_AddIntConstant(m, "altzone", _Py_timezone-3600);

16081618

#endif

1609-

PyModule_AddIntConstant(m, "daylight", daylight);

1610-

otz0 = PyUnicode_DecodeLocale(tzname[0], "surrogateescape");

1619+

PyModule_AddIntConstant(m, "daylight", _Py_daylight);

1620+

otz0 = PyUnicode_DecodeLocale(_Py_tzname[0], "surrogateescape");

16111621

if (otz0 == NULL) {

16121622

return -1;

16131623

}

1614-

otz1 = PyUnicode_DecodeLocale(tzname[1], "surrogateescape");

1624+

otz1 = PyUnicode_DecodeLocale(_Py_tzname[1], "surrogateescape");

16151625

if (otz1 == NULL) {

16161626

Py_DECREF(otz0);

16171627

return -1;