Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit 6673dec

Browse filesBrowse files
ZackerySpytzzooba
authored andcommitted
bpo-24643: Fix "#define timezone _timezone" clashes on Windows (GH-12019)
1 parent aadef2b commit 6673dec
Copy full SHA for 6673dec

3 files changed

+16-12Lines changed: 16 additions & 12 deletions

File tree

Expand file treeCollapse file tree
Open diff view settings
Filter options
Expand file treeCollapse file tree
Open diff view settings
Collapse file
+1Lines changed: 1 addition & 0 deletions
  • Display the source diff
  • Display the rich diff
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Fix name collisions due to ``#define timezone _timezone`` in PC/pyconfig.h.
Collapse file

‎Modules/timemodule.c‎

Copy file name to clipboardExpand all lines: Modules/timemodule.c
+15-5Lines changed: 15 additions & 5 deletions
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;
Collapse file

‎PC/pyconfig.h‎

Copy file name to clipboardExpand all lines: PC/pyconfig.h
-7Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -192,13 +192,6 @@ typedef int pid_t;
192192
#define Py_IS_FINITE(X) _finite(X)
193193
#define copysign _copysign
194194

195-
/* VS 2015 defines these names with a leading underscore */
196-
#if _MSC_VER >= 1900
197-
#define timezone _timezone
198-
#define daylight _daylight
199-
#define tzname _tzname
200-
#endif
201-
202195
/* Side by Side assemblies supported in VS 2005 and VS 2008 but not 2010*/
203196
#if _MSC_VER >= 1400 && _MSC_VER < 1600
204197
#define HAVE_SXS 1

0 commit comments

Comments
0 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.