summaryrefslogtreecommitdiffstats
path: root/Include
diff options
context:
space:
mode:
authorEric V. Smith <eric@trueblade.com>2016-10-31 18:46:26 (GMT)
committerEric V. Smith <eric@trueblade.com>2016-10-31 18:46:26 (GMT)
commit5646648678295a44aa82636c6e92826651baf33a (patch)
tree2a41306ca416712ba7b55a4e51bcb836ab2a693c /Include
parent7f0514ad54dd806817ce6d1f54969b8979475d34 (diff)
downloadcpython-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.h5
-rw-r--r--Include/unicodeobject.h11
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 */
);