PyObject *search_function
);
-/* Codec registry lookup API.
-
- Looks up the given encoding and returns a CodecInfo object with
- function attributes which implement the different aspects of
- processing the encoding.
-
- The encoding string is looked up converted to all lower-case
- characters. This makes encodings looked up through this mechanism
- effectively case-insensitive.
-
- If no codec is found, a KeyError is set and NULL returned.
-
- As side effect, this tries to load the encodings package, if not
- yet done. This is part of the lazy load strategy for the encodings
- package.
-
- */
-
-#ifndef Py_LIMITED_API
-PyAPI_FUNC(PyObject *) _PyCodec_Lookup(
- const char *encoding
- );
-
-PyAPI_FUNC(int) _PyCodec_Forget(
- const char *encoding
- );
-#endif
-
/* Codec registry encoding check API.
Returns 1/0 depending on whether there is a registered codec for
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.
+// --- Codec Lookup APIs --------------------------------------------------
- Please note that these APIs are internal and should not
- be used in Python C extensions.
-
- XXX (ncoghlan): should we make these, or something like them, public
- in Python 3.5+?
+/* Codec registry lookup API.
- */
-PyAPI_FUNC(PyObject *) _PyCodec_LookupTextEncoding(
- const char *encoding,
- const char *alternate_command
- );
+ Looks up the given encoding and returns a CodecInfo object with
+ function attributes which implement the different aspects of
+ processing the encoding.
-PyAPI_FUNC(PyObject *) _PyCodec_EncodeText(
- PyObject *object,
- const char *encoding,
- const char *errors
- );
+ The encoding string is looked up converted to all lower-case
+ characters. This makes encodings looked up through this mechanism
+ effectively case-insensitive.
-PyAPI_FUNC(PyObject *) _PyCodec_DecodeText(
- PyObject *object,
- const char *encoding,
- const char *errors
- );
+ If no codec is found, a KeyError is set and NULL returned.
-/* These two aren't actually text encoding specific, but _io.TextIOWrapper
- * is the only current API consumer.
+ As side effect, this tries to load the encodings package, if not
+ yet done. This is part of the lazy load strategy for the encodings
+ package.
*/
-PyAPI_FUNC(PyObject *) _PyCodecInfo_GetIncrementalDecoder(
- PyObject *codec_info,
- const char *errors
- );
-
-PyAPI_FUNC(PyObject *) _PyCodecInfo_GetIncrementalEncoder(
- PyObject *codec_info,
- const char *errors
- );
-#endif
-
-
-
-/* --- Codec Lookup APIs --------------------------------------------------
-
- All APIs return a codec object with incremented refcount and are
- based on _PyCodec_Lookup(). The same comments w/r to the encoding
- name also apply to these APIs.
-
-*/
/* Get an encoder function for the given encoding. */
-PyAPI_FUNC(PyObject *) PyCodec_Encoder(
- const char *encoding
- );
+PyAPI_FUNC(PyObject *) PyCodec_Encoder(const char *encoding);
/* Get a decoder function for the given encoding. */
-PyAPI_FUNC(PyObject *) PyCodec_Decoder(
- const char *encoding
- );
+PyAPI_FUNC(PyObject *) PyCodec_Decoder(const char *encoding);
/* Get an IncrementalEncoder object for the given encoding. */
PyAPI_FUNC(PyObject *) PyCodec_IncrementalEncoder(
- const char *encoding,
- const char *errors
- );
+ const char *encoding,
+ const char *errors);
/* Get an IncrementalDecoder object function for the given encoding. */
PyAPI_FUNC(PyObject *) PyCodec_IncrementalDecoder(
- const char *encoding,
- const char *errors
- );
+ const char *encoding,
+ const char *errors);
/* Get a StreamReader factory function for the given encoding. */
PyAPI_FUNC(PyObject *) PyCodec_StreamReader(
- const char *encoding,
- PyObject *stream,
- const char *errors
- );
+ const char *encoding,
+ PyObject *stream,
+ const char *errors);
/* Get a StreamWriter factory function for the given encoding. */
PyAPI_FUNC(PyObject *) PyCodec_StreamWriter(
- const char *encoding,
- PyObject *stream,
- const char *errors
- );
+ const char *encoding,
+ PyObject *stream,
+ const char *errors);
/* Unicode encoding error handling callback registry API */
--- /dev/null
+#ifndef Py_INTERNAL_CODECS_H
+#define Py_INTERNAL_CODECS_H
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+extern PyObject* _PyCodec_Lookup(const char *encoding);
+
+extern int _PyCodec_Forget(const char *encoding);
+
+/* 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.
+
+ XXX (ncoghlan): should we make these, or something like them, public
+ in Python 3.5+?
+
+ */
+extern PyObject* _PyCodec_LookupTextEncoding(
+ const char *encoding,
+ const char *alternate_command);
+
+extern PyObject* _PyCodec_EncodeText(
+ PyObject *object,
+ const char *encoding,
+ const char *errors);
+
+extern PyObject* _PyCodec_DecodeText(
+ PyObject *object,
+ const char *encoding,
+ const char *errors);
+
+/* These two aren't actually text encoding specific, but _io.TextIOWrapper
+ * is the only current API consumer.
+ */
+extern PyObject* _PyCodecInfo_GetIncrementalDecoder(
+ PyObject *codec_info,
+ const char *errors);
+
+extern PyObject* _PyCodecInfo_GetIncrementalEncoder(
+ PyObject *codec_info,
+ const char *errors);
+
+
+#ifdef __cplusplus
+}
+#endif
+#endif /* !Py_INTERNAL_CODECS_H */