mirror of
https://github.com/python-pillow/Pillow.git
synced 2024-12-26 18:06:18 +03:00
fix support for extended unicode characters in PyPy
This commit is contained in:
parent
f90a21965a
commit
837d8ae984
|
@ -463,7 +463,7 @@ class TestImageFont(PillowTestCase):
|
|||
with self.assertRaises(UnicodeEncodeError):
|
||||
font.getsize("’")
|
||||
|
||||
@unittest.skipIf(is_pypy(), "requires CPython")
|
||||
@unittest.skipIf(is_pypy(), "failing on PyPy")
|
||||
def test_unicode_extended(self):
|
||||
# issue #3777
|
||||
text = "A\u278A\U0001F12B"
|
||||
|
|
|
@ -326,24 +326,12 @@ getfont(PyObject* self_, PyObject* args, PyObject* kw)
|
|||
static int
|
||||
font_getchar(PyObject* string, int index, FT_ULong* char_out)
|
||||
{
|
||||
#if (defined(PYPY_VERSION_NUM))
|
||||
if (PyUnicode_Check(string)) {
|
||||
Py_UNICODE* p = PyUnicode_AS_UNICODE(string);
|
||||
int size = PyUnicode_GET_SIZE(string);
|
||||
if (index >= size)
|
||||
return 0;
|
||||
*char_out = p[index];
|
||||
return 1;
|
||||
}
|
||||
#else
|
||||
if (PyUnicode_Check(string)) {
|
||||
if (index >= PyUnicode_GET_LENGTH(string))
|
||||
return 0;
|
||||
*char_out = PyUnicode_READ_CHAR(string, index);
|
||||
return 1;
|
||||
}
|
||||
#endif
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -363,7 +351,7 @@ text_layout_raqm(PyObject* string, FontObject* self, const char* dir, PyObject *
|
|||
goto failed;
|
||||
}
|
||||
|
||||
#if (defined(PYPY_VERSION_NUM))
|
||||
#if (defined(PYPY_VERSION_NUM) && (PYPY_VERSION_NUM < 0x07020000))
|
||||
if (PyUnicode_Check(string)) {
|
||||
Py_UNICODE *text = PyUnicode_AS_UNICODE(string);
|
||||
Py_ssize_t size = PyUnicode_GET_SIZE(string);
|
||||
|
|
Loading…
Reference in New Issue
Block a user