diff --git a/Misc/NEWS b/Misc/NEWS index ef981f379b0..41a8fd897f4 100644 --- a/Misc/NEWS +++ b/Misc/NEWS @@ -368,6 +368,8 @@ Tools/Demos Build ----- +- Issue #10055: Make json C89-compliant in UCS4 mode. + - Issue #1633863: Don't ignore $CC under AIX. - Issue #9810: Compile bzip2 source files in python's project file diff --git a/Modules/_json.c b/Modules/_json.c index 2ef66e3fa4e..d81721a00aa 100644 --- a/Modules/_json.c +++ b/Modules/_json.c @@ -564,8 +564,8 @@ scanstring_str(PyObject *pystr, Py_ssize_t end, char *encoding, int strict, Py_s end += 6; /* Decode 4 hex digits */ for (; next < end; next++) { - c2 <<= 4; Py_UNICODE digit = buf[next]; + c2 <<= 4; switch (digit) { case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': @@ -755,8 +755,8 @@ scanstring_unicode(PyObject *pystr, Py_ssize_t end, int strict, Py_ssize_t *next end += 6; /* Decode 4 hex digits */ for (; next < end; next++) { - c2 <<= 4; Py_UNICODE digit = buf[next]; + c2 <<= 4; switch (digit) { case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9':