summaryrefslogtreecommitdiffstats
path: root/Include
diff options
context:
space:
mode:
authorNed Deily <nad@python.org>2016-08-15 07:23:23 (GMT)
committerNed Deily <nad@python.org>2016-08-15 07:23:23 (GMT)
commit6349612a8e5d5fcb3405e59242b6a2df3127585a (patch)
treea567e9a914508b13b1a323633ac329d5ae1ee16e /Include
parent15f3228b7c35fb44f0024d9814172d49f472891b (diff)
parent3d4559936a0e628c1c910c48b26907f2b2f2c9cb (diff)
downloadcpython-6349612a8e5d5fcb3405e59242b6a2df3127585a.zip
cpython-6349612a8e5d5fcb3405e59242b6a2df3127585a.tar.gz
cpython-6349612a8e5d5fcb3405e59242b6a2df3127585a.tar.bz2
Issue #10910: merge from 3.5
Diffstat (limited to 'Include')
-rw-r--r--Include/pyport.h11
1 files changed, 10 insertions, 1 deletions
diff --git a/Include/pyport.h b/Include/pyport.h
index 8b0a89f..4eca9b4 100644
--- a/Include/pyport.h
+++ b/Include/pyport.h
@@ -677,7 +677,9 @@ extern pid_t forkpty(int *, char *, struct termios *, struct winsize *);
#ifdef __FreeBSD__
#include <osreldate.h>
-#if __FreeBSD_version > 500039
+#if (__FreeBSD_version >= 500040 && __FreeBSD_version < 602113) || \
+ (__FreeBSD_version >= 700000 && __FreeBSD_version < 700054) || \
+ (__FreeBSD_version >= 800000 && __FreeBSD_version < 800001)
# define _PY_PORT_CTYPE_UTF8_ISSUE
#endif
#endif
@@ -688,6 +690,12 @@ extern pid_t forkpty(int *, char *, struct termios *, struct winsize *);
#endif
#ifdef _PY_PORT_CTYPE_UTF8_ISSUE
+#ifndef __cplusplus
+ /* The workaround below is unsafe in C++ because
+ * the <locale> defines these symbols as real functions,
+ * with a slightly different signature.
+ * See issue #10910
+ */
#include <ctype.h>
#include <wctype.h>
#undef isalnum
@@ -705,6 +713,7 @@ extern pid_t forkpty(int *, char *, struct termios *, struct winsize *);
#undef toupper
#define toupper(c) towupper(btowc(c))
#endif
+#endif
/* Declarations for symbol visibility.