Commit 4140e118 authored by Stefan Behnel's avatar Stefan Behnel

in Py3.2, the unicode character testing/conversion functions accept Py_UCS4 instead of Py_UNICODE

parent ac984421
...@@ -2183,7 +2183,7 @@ class OptimizeBuiltinCalls(Visitor.EnvTransform): ...@@ -2183,7 +2183,7 @@ class OptimizeBuiltinCalls(Visitor.EnvTransform):
PyUnicode_uchar_predicate_func_type = PyrexTypes.CFuncType( PyUnicode_uchar_predicate_func_type = PyrexTypes.CFuncType(
PyrexTypes.c_bint_type, [ PyrexTypes.c_bint_type, [
PyrexTypes.CFuncTypeArg("uchar", PyrexTypes.c_py_unicode_type, None), PyrexTypes.CFuncTypeArg("uchar", PyrexTypes.c_py_ucs4_type, None),
]) ])
def _inject_unicode_predicate(self, node, args, is_unbound_method): def _inject_unicode_predicate(self, node, args, is_unbound_method):
...@@ -2221,8 +2221,8 @@ class OptimizeBuiltinCalls(Visitor.EnvTransform): ...@@ -2221,8 +2221,8 @@ class OptimizeBuiltinCalls(Visitor.EnvTransform):
_handle_simple_method_unicode_isupper = _inject_unicode_predicate _handle_simple_method_unicode_isupper = _inject_unicode_predicate
PyUnicode_uchar_conversion_func_type = PyrexTypes.CFuncType( PyUnicode_uchar_conversion_func_type = PyrexTypes.CFuncType(
PyrexTypes.c_py_unicode_type, [ PyrexTypes.c_py_ucs4_type, [
PyrexTypes.CFuncTypeArg("uchar", PyrexTypes.c_py_unicode_type, None), PyrexTypes.CFuncTypeArg("uchar", PyrexTypes.c_py_ucs4_type, None),
]) ])
def _inject_unicode_character_conversion(self, node, args, is_unbound_method): def _inject_unicode_character_conversion(self, node, args, is_unbound_method):
...@@ -2702,10 +2702,18 @@ py_unicode_istitle_utility_code = UtilityCode( ...@@ -2702,10 +2702,18 @@ py_unicode_istitle_utility_code = UtilityCode(
# Py_UNICODE_ISTITLE() doesn't match unicode.istitle() as the latter # Py_UNICODE_ISTITLE() doesn't match unicode.istitle() as the latter
# additionally allows character that comply with Py_UNICODE_ISUPPER() # additionally allows character that comply with Py_UNICODE_ISUPPER()
proto = ''' proto = '''
#if PY_VERSION_HEX < 0x030200A2
static CYTHON_INLINE int __Pyx_Py_UNICODE_ISTITLE(Py_UNICODE uchar); /* proto */ static CYTHON_INLINE int __Pyx_Py_UNICODE_ISTITLE(Py_UNICODE uchar); /* proto */
#else
static CYTHON_INLINE int __Pyx_Py_UNICODE_ISTITLE(Py_UCS4 uchar); /* proto */
#endif
''', ''',
impl = ''' impl = '''
#if PY_VERSION_HEX < 0x030200A2
static CYTHON_INLINE int __Pyx_Py_UNICODE_ISTITLE(Py_UNICODE uchar) { static CYTHON_INLINE int __Pyx_Py_UNICODE_ISTITLE(Py_UNICODE uchar) {
#else
static CYTHON_INLINE int __Pyx_Py_UNICODE_ISTITLE(Py_UCS4 uchar) {
#endif
return Py_UNICODE_ISTITLE(uchar) || Py_UNICODE_ISUPPER(uchar); return Py_UNICODE_ISTITLE(uchar) || Py_UNICODE_ISUPPER(uchar);
} }
''') ''')
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment