summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStefan Behnel <stefan_ml@behnel.de>2020-07-05 21:00:19 +0200
committerStefan Behnel <stefan_ml@behnel.de>2020-07-07 08:51:12 +0200
commite25209580b0e9745c5ad17617d883a41cad58adf (patch)
tree64e2e0d5205346e85b08c29c36e99f88e0eb9bed
parent7540f7e9cd59e041cfecc7189a5e0625c5b3cff9 (diff)
downloadcython-e25209580b0e9745c5ad17617d883a41cad58adf.tar.gz
Disable Py_UNICODE fallback for __Pyx_UnicodeContainsUCS4() in Py3.9 since Py_UNICODE is deprecated and PEP-393 unicode is practically required.
-rw-r--r--Cython/Utility/StringTools.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/Cython/Utility/StringTools.c b/Cython/Utility/StringTools.c
index 9c4ea4fea..7a3426215 100644
--- a/Cython/Utility/StringTools.c
+++ b/Cython/Utility/StringTools.c
@@ -66,6 +66,7 @@ static CYTHON_INLINE int __Pyx_UnicodeContainsUCS4(PyObject* unicode, Py_UCS4 ch
//////////////////// PyUCS4InUnicode ////////////////////
+#if PY_VERSION_HEX < 0x03090000
#if Py_UNICODE_SIZE == 2
static int __Pyx_PyUnicodeBufferContainsUCS4_SP(Py_UNICODE* buffer, Py_ssize_t length, Py_UCS4 character) {
/* handle surrogate pairs for Py_UNICODE buffers in 16bit Unicode builds */
@@ -89,6 +90,7 @@ static int __Pyx_PyUnicodeBufferContainsUCS4_BMP(Py_UNICODE* buffer, Py_ssize_t
}
return 0;
}
+#endif
static CYTHON_INLINE int __Pyx_UnicodeContainsUCS4(PyObject* unicode, Py_UCS4 character) {
#if CYTHON_PEP393_ENABLED
@@ -102,7 +104,10 @@ static CYTHON_INLINE int __Pyx_UnicodeContainsUCS4(PyObject* unicode, Py_UCS4 ch
}
return 0;
}
+#elif PY_VERSION_HEX >= 0x03090000
+ #error Cannot use "UChar in Unicode" in Python 3.9 without PEP-393 unicode strings.
#endif
+#if PY_VERSION_HEX < 0x03090000
#if Py_UNICODE_SIZE == 2
if (unlikely(character > 65535)) {
return __Pyx_PyUnicodeBufferContainsUCS4_SP(
@@ -118,6 +123,7 @@ static CYTHON_INLINE int __Pyx_UnicodeContainsUCS4(PyObject* unicode, Py_UCS4 ch
character);
}
+#endif
}