diff options
author | Serhiy Storchaka <storchaka@gmail.com> | 2021-10-14 18:23:39 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-10-14 18:23:39 (GMT) |
commit | 4641afef661e6a22bc64194bd334b161c95edfe2 (patch) | |
tree | d053338921b36eb41bd0a1880c801a33cbec7878 /Include | |
parent | 0bff4ccbfd3297b0adf690655d3e9ddb0033bc69 (diff) | |
download | cpython-4641afef661e6a22bc64194bd334b161c95edfe2.zip cpython-4641afef661e6a22bc64194bd334b161c95edfe2.tar.gz cpython-4641afef661e6a22bc64194bd334b161c95edfe2.tar.bz2 |
[3.10] bpo-45467: Fix IncrementalDecoder and StreamReader in the "raw-unicode-escape" codec (GH-28944) (GH-28952)
They support now splitting escape sequences between input chunks.
Add the third parameter "final" in codecs.raw_unicode_escape_decode().
It is True by default to match the former behavior.
(cherry picked from commit 39aa98346d5dd8ac591a7cafb467af21c53f1e5d)
Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
Diffstat (limited to 'Include')
-rw-r--r-- | Include/cpython/unicodeobject.h | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/Include/cpython/unicodeobject.h b/Include/cpython/unicodeobject.h index a004895..0761f01 100644 --- a/Include/cpython/unicodeobject.h +++ b/Include/cpython/unicodeobject.h @@ -841,6 +841,7 @@ PyAPI_FUNC(PyObject*) _PyUnicode_DecodeUnicodeEscapeStateful( const char *errors, /* error handling */ Py_ssize_t *consumed /* bytes consumed */ ); + /* Helper for PyUnicode_DecodeUnicodeEscape that detects invalid escape chars. */ PyAPI_FUNC(PyObject*) _PyUnicode_DecodeUnicodeEscapeInternal( @@ -865,6 +866,14 @@ Py_DEPRECATED(3.3) PyAPI_FUNC(PyObject*) PyUnicode_EncodeRawUnicodeEscape( Py_ssize_t length /* Number of Py_UNICODE chars to encode */ ); +/* Variant of PyUnicode_DecodeRawUnicodeEscape that supports partial decoding. */ +PyAPI_FUNC(PyObject*) _PyUnicode_DecodeRawUnicodeEscapeStateful( + const char *string, /* Unicode-Escape encoded string */ + Py_ssize_t length, /* size of string */ + const char *errors, /* error handling */ + Py_ssize_t *consumed /* bytes consumed */ +); + /* --- Latin-1 Codecs ----------------------------------------------------- */ PyAPI_FUNC(PyObject*) _PyUnicode_AsLatin1String( |