diff options
author | Eric V. Smith <eric@trueblade.com> | 2016-10-31 18:46:26 (GMT) |
---|---|---|
committer | Eric V. Smith <eric@trueblade.com> | 2016-10-31 18:46:26 (GMT) |
commit | 5646648678295a44aa82636c6e92826651baf33a (patch) | |
tree | 2a41306ca416712ba7b55a4e51bcb836ab2a693c /Include | |
parent | 7f0514ad54dd806817ce6d1f54969b8979475d34 (diff) | |
download | cpython-5646648678295a44aa82636c6e92826651baf33a.zip cpython-5646648678295a44aa82636c6e92826651baf33a.tar.gz cpython-5646648678295a44aa82636c6e92826651baf33a.tar.bz2 |
Issue 28128: Print out better error/warning messages for invalid string escapes. Backport to 3.6.
Diffstat (limited to 'Include')
-rw-r--r-- | Include/bytesobject.h | 5 | ||||
-rw-r--r-- | Include/unicodeobject.h | 11 |
2 files changed, 16 insertions, 0 deletions
diff --git a/Include/bytesobject.h b/Include/bytesobject.h index 11d8218..98e29b6 100644 --- a/Include/bytesobject.h +++ b/Include/bytesobject.h @@ -74,6 +74,11 @@ PyAPI_FUNC(PyObject*) _PyBytes_FromHex( PyAPI_FUNC(PyObject *) PyBytes_DecodeEscape(const char *, Py_ssize_t, const char *, Py_ssize_t, const char *); +/* Helper for PyBytes_DecodeEscape that detects invalid escape chars. */ +PyAPI_FUNC(PyObject *) _PyBytes_DecodeEscape(const char *, Py_ssize_t, + const char *, Py_ssize_t, + const char *, + const char **); /* Macro, trading safety for speed */ #ifndef Py_LIMITED_API diff --git a/Include/unicodeobject.h b/Include/unicodeobject.h index 5711de0..b5ef3e4 100644 --- a/Include/unicodeobject.h +++ b/Include/unicodeobject.h @@ -1486,6 +1486,17 @@ PyAPI_FUNC(PyObject*) PyUnicode_DecodeUnicodeEscape( const char *errors /* error handling */ ); +/* Helper for PyUnicode_DecodeUnicodeEscape that detects invalid escape + chars. */ +PyAPI_FUNC(PyObject*) _PyUnicode_DecodeUnicodeEscape( + const char *string, /* Unicode-Escape encoded string */ + Py_ssize_t length, /* size of string */ + const char *errors, /* error handling */ + const char **first_invalid_escape /* on return, points to first + invalid escaped char in + string. */ +); + PyAPI_FUNC(PyObject*) PyUnicode_AsUnicodeEscapeString( PyObject *unicode /* Unicode object */ ); |