diff options
author | Nick Coghlan <ncoghlan@gmail.com> | 2013-11-22 12:39:36 (GMT) |
---|---|---|
committer | Nick Coghlan <ncoghlan@gmail.com> | 2013-11-22 12:39:36 (GMT) |
commit | c72e4e6dccce99bcdcb45959767436d7e5cfda8c (patch) | |
tree | 029832d80cc82a039dc1014302c9eb9dd2214543 /Include | |
parent | 322f5ba0d8d5e8a9cd2a134fa215884b4cbc373d (diff) | |
download | cpython-c72e4e6dccce99bcdcb45959767436d7e5cfda8c.zip cpython-c72e4e6dccce99bcdcb45959767436d7e5cfda8c.tar.gz cpython-c72e4e6dccce99bcdcb45959767436d7e5cfda8c.tar.bz2 |
Issue #19619: Blacklist non-text codecs in method API
str.encode, bytes.decode and bytearray.decode now use an
internal API to throw LookupError for known non-text encodings,
rather than attempting the encoding or decoding operation and
then throwing a TypeError for an unexpected output type.
The latter mechanism remains in place for third party non-text
encodings.
Diffstat (limited to 'Include')
-rw-r--r-- | Include/codecs.h | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/Include/codecs.h b/Include/codecs.h index 0d9e9b4..5ca505f 100644 --- a/Include/codecs.h +++ b/Include/codecs.h @@ -94,6 +94,33 @@ PyAPI_FUNC(PyObject *) PyCodec_Decode( const char *errors ); +#ifndef PY_LIMITED_API +/* Text codec specific encoding and decoding API. + + Checks the encoding against a list of codecs which do not + implement a str<->bytes encoding before attempting the + operation. + + Please note that these APIs are internal and should not + be used in Python C extensions. + + */ + +PyAPI_FUNC(PyObject *) _PyCodec_EncodeText( + PyObject *object, + const char *encoding, + const char *errors + ); + +PyAPI_FUNC(PyObject *) _PyCodec_DecodeText( + PyObject *object, + const char *encoding, + const char *errors + ); +#endif + + + /* --- Codec Lookup APIs -------------------------------------------------- All APIs return a codec object with incremented refcount and are |