blob: 360a1341701b2d2ad46d49994a488d4baefd76e8 [file] [log] [blame]
Serhiy Storchaka1009bf12015-04-03 23:53:51 +03001/*[clinic input]
2preserve
3[clinic start generated code]*/
4
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +03005PyDoc_STRVAR(_codecs_register__doc__,
6"register($module, search_function, /)\n"
7"--\n"
8"\n"
9"Register a codec search function.\n"
10"\n"
11"Search functions are expected to take one argument, the encoding name in\n"
12"all lower case letters, and either return None, or a tuple of functions\n"
13"(encoder, decoder, stream_reader, stream_writer) (or a CodecInfo object).");
14
15#define _CODECS_REGISTER_METHODDEF \
16 {"register", (PyCFunction)_codecs_register, METH_O, _codecs_register__doc__},
17
18PyDoc_STRVAR(_codecs_lookup__doc__,
19"lookup($module, encoding, /)\n"
20"--\n"
21"\n"
22"Looks up a codec tuple in the Python codec registry and returns a CodecInfo object.");
23
24#define _CODECS_LOOKUP_METHODDEF \
25 {"lookup", (PyCFunction)_codecs_lookup, METH_O, _codecs_lookup__doc__},
26
27static PyObject *
Serhiy Storchaka1a2b24f2016-07-07 17:35:15 +030028_codecs_lookup_impl(PyObject *module, const char *encoding);
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +030029
30static PyObject *
Serhiy Storchaka1a2b24f2016-07-07 17:35:15 +030031_codecs_lookup(PyObject *module, PyObject *arg)
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +030032{
33 PyObject *return_value = NULL;
34 const char *encoding;
35
Serhiy Storchaka32d96a22018-12-25 13:23:47 +020036 if (!PyUnicode_Check(arg)) {
37 _PyArg_BadArgument("lookup", "str", arg);
38 goto exit;
39 }
40 Py_ssize_t encoding_length;
41 encoding = PyUnicode_AsUTF8AndSize(arg, &encoding_length);
42 if (encoding == NULL) {
43 goto exit;
44 }
45 if (strlen(encoding) != (size_t)encoding_length) {
46 PyErr_SetString(PyExc_ValueError, "embedded null character");
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +030047 goto exit;
Serhiy Storchaka5dee6552016-06-09 16:16:06 +030048 }
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +030049 return_value = _codecs_lookup_impl(module, encoding);
50
51exit:
52 return return_value;
53}
54
55PyDoc_STRVAR(_codecs_encode__doc__,
Serhiy Storchakac97a9622015-08-09 12:23:08 +030056"encode($module, /, obj, encoding=\'utf-8\', errors=\'strict\')\n"
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +030057"--\n"
58"\n"
59"Encodes obj using the codec registered for encoding.\n"
60"\n"
Serhiy Storchakac97a9622015-08-09 12:23:08 +030061"The default encoding is \'utf-8\'. errors may be given to set a\n"
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +030062"different error handling scheme. Default is \'strict\' meaning that encoding\n"
63"errors raise a ValueError. Other possible values are \'ignore\', \'replace\'\n"
64"and \'backslashreplace\' as well as any other name registered with\n"
65"codecs.register_error that can handle ValueErrors.");
66
67#define _CODECS_ENCODE_METHODDEF \
Serhiy Storchaka4a934d42018-11-27 11:27:36 +020068 {"encode", (PyCFunction)(void(*)(void))_codecs_encode, METH_FASTCALL|METH_KEYWORDS, _codecs_encode__doc__},
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +030069
70static PyObject *
Serhiy Storchaka1a2b24f2016-07-07 17:35:15 +030071_codecs_encode_impl(PyObject *module, PyObject *obj, const char *encoding,
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +030072 const char *errors);
73
74static PyObject *
Serhiy Storchakaa5552f02017-12-15 13:11:11 +020075_codecs_encode(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +030076{
77 PyObject *return_value = NULL;
Serhiy Storchaka9171a8b2016-08-14 10:52:18 +030078 static const char * const _keywords[] = {"obj", "encoding", "errors", NULL};
79 static _PyArg_Parser _parser = {"O|ss:encode", _keywords, 0};
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +030080 PyObject *obj;
81 const char *encoding = NULL;
82 const char *errors = NULL;
83
Victor Stinner3e1fad62017-01-17 01:29:01 +010084 if (!_PyArg_ParseStackAndKeywords(args, nargs, kwnames, &_parser,
Serhiy Storchaka5dee6552016-06-09 16:16:06 +030085 &obj, &encoding, &errors)) {
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +030086 goto exit;
Serhiy Storchaka5dee6552016-06-09 16:16:06 +030087 }
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +030088 return_value = _codecs_encode_impl(module, obj, encoding, errors);
89
90exit:
91 return return_value;
92}
93
94PyDoc_STRVAR(_codecs_decode__doc__,
Serhiy Storchakac97a9622015-08-09 12:23:08 +030095"decode($module, /, obj, encoding=\'utf-8\', errors=\'strict\')\n"
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +030096"--\n"
97"\n"
98"Decodes obj using the codec registered for encoding.\n"
99"\n"
Serhiy Storchakac97a9622015-08-09 12:23:08 +0300100"Default encoding is \'utf-8\'. errors may be given to set a\n"
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300101"different error handling scheme. Default is \'strict\' meaning that encoding\n"
102"errors raise a ValueError. Other possible values are \'ignore\', \'replace\'\n"
103"and \'backslashreplace\' as well as any other name registered with\n"
104"codecs.register_error that can handle ValueErrors.");
105
106#define _CODECS_DECODE_METHODDEF \
Serhiy Storchaka4a934d42018-11-27 11:27:36 +0200107 {"decode", (PyCFunction)(void(*)(void))_codecs_decode, METH_FASTCALL|METH_KEYWORDS, _codecs_decode__doc__},
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300108
109static PyObject *
Serhiy Storchaka1a2b24f2016-07-07 17:35:15 +0300110_codecs_decode_impl(PyObject *module, PyObject *obj, const char *encoding,
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300111 const char *errors);
112
113static PyObject *
Serhiy Storchakaa5552f02017-12-15 13:11:11 +0200114_codecs_decode(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300115{
116 PyObject *return_value = NULL;
Serhiy Storchaka9171a8b2016-08-14 10:52:18 +0300117 static const char * const _keywords[] = {"obj", "encoding", "errors", NULL};
118 static _PyArg_Parser _parser = {"O|ss:decode", _keywords, 0};
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300119 PyObject *obj;
120 const char *encoding = NULL;
121 const char *errors = NULL;
122
Victor Stinner3e1fad62017-01-17 01:29:01 +0100123 if (!_PyArg_ParseStackAndKeywords(args, nargs, kwnames, &_parser,
Serhiy Storchaka5dee6552016-06-09 16:16:06 +0300124 &obj, &encoding, &errors)) {
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300125 goto exit;
Serhiy Storchaka5dee6552016-06-09 16:16:06 +0300126 }
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300127 return_value = _codecs_decode_impl(module, obj, encoding, errors);
128
129exit:
130 return return_value;
131}
132
Serhiy Storchaka1009bf12015-04-03 23:53:51 +0300133PyDoc_STRVAR(_codecs__forget_codec__doc__,
134"_forget_codec($module, encoding, /)\n"
135"--\n"
136"\n"
137"Purge the named codec from the internal codec lookup cache");
138
139#define _CODECS__FORGET_CODEC_METHODDEF \
Serhiy Storchaka92e8af62015-04-04 00:12:11 +0300140 {"_forget_codec", (PyCFunction)_codecs__forget_codec, METH_O, _codecs__forget_codec__doc__},
Serhiy Storchaka1009bf12015-04-03 23:53:51 +0300141
142static PyObject *
Serhiy Storchaka1a2b24f2016-07-07 17:35:15 +0300143_codecs__forget_codec_impl(PyObject *module, const char *encoding);
Serhiy Storchaka1009bf12015-04-03 23:53:51 +0300144
145static PyObject *
Serhiy Storchaka1a2b24f2016-07-07 17:35:15 +0300146_codecs__forget_codec(PyObject *module, PyObject *arg)
Serhiy Storchaka1009bf12015-04-03 23:53:51 +0300147{
148 PyObject *return_value = NULL;
149 const char *encoding;
150
Serhiy Storchaka32d96a22018-12-25 13:23:47 +0200151 if (!PyUnicode_Check(arg)) {
152 _PyArg_BadArgument("_forget_codec", "str", arg);
153 goto exit;
154 }
155 Py_ssize_t encoding_length;
156 encoding = PyUnicode_AsUTF8AndSize(arg, &encoding_length);
157 if (encoding == NULL) {
158 goto exit;
159 }
160 if (strlen(encoding) != (size_t)encoding_length) {
161 PyErr_SetString(PyExc_ValueError, "embedded null character");
Serhiy Storchaka1009bf12015-04-03 23:53:51 +0300162 goto exit;
Serhiy Storchaka5dee6552016-06-09 16:16:06 +0300163 }
Serhiy Storchaka1009bf12015-04-03 23:53:51 +0300164 return_value = _codecs__forget_codec_impl(module, encoding);
165
166exit:
167 return return_value;
168}
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300169
170PyDoc_STRVAR(_codecs_escape_decode__doc__,
171"escape_decode($module, data, errors=None, /)\n"
172"--\n"
173"\n");
174
175#define _CODECS_ESCAPE_DECODE_METHODDEF \
Serhiy Storchaka4a934d42018-11-27 11:27:36 +0200176 {"escape_decode", (PyCFunction)(void(*)(void))_codecs_escape_decode, METH_FASTCALL, _codecs_escape_decode__doc__},
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300177
178static PyObject *
Serhiy Storchaka1a2b24f2016-07-07 17:35:15 +0300179_codecs_escape_decode_impl(PyObject *module, Py_buffer *data,
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300180 const char *errors);
181
182static PyObject *
Serhiy Storchakaa5552f02017-12-15 13:11:11 +0200183_codecs_escape_decode(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300184{
185 PyObject *return_value = NULL;
186 Py_buffer data = {NULL, NULL};
187 const char *errors = NULL;
188
Sylvain74453812017-06-10 06:51:48 +0200189 if (!_PyArg_ParseStack(args, nargs, "s*|z:escape_decode",
190 &data, &errors)) {
Victor Stinner259f0e42017-01-17 01:35:17 +0100191 goto exit;
192 }
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300193 return_value = _codecs_escape_decode_impl(module, &data, errors);
194
195exit:
196 /* Cleanup for data */
Serhiy Storchaka5dee6552016-06-09 16:16:06 +0300197 if (data.obj) {
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300198 PyBuffer_Release(&data);
Serhiy Storchaka5dee6552016-06-09 16:16:06 +0300199 }
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300200
201 return return_value;
202}
203
204PyDoc_STRVAR(_codecs_escape_encode__doc__,
205"escape_encode($module, data, errors=None, /)\n"
206"--\n"
207"\n");
208
209#define _CODECS_ESCAPE_ENCODE_METHODDEF \
Serhiy Storchaka4a934d42018-11-27 11:27:36 +0200210 {"escape_encode", (PyCFunction)(void(*)(void))_codecs_escape_encode, METH_FASTCALL, _codecs_escape_encode__doc__},
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300211
212static PyObject *
Serhiy Storchaka1a2b24f2016-07-07 17:35:15 +0300213_codecs_escape_encode_impl(PyObject *module, PyObject *data,
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300214 const char *errors);
215
216static PyObject *
Serhiy Storchakaa5552f02017-12-15 13:11:11 +0200217_codecs_escape_encode(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300218{
219 PyObject *return_value = NULL;
220 PyObject *data;
221 const char *errors = NULL;
222
Sylvain74453812017-06-10 06:51:48 +0200223 if (!_PyArg_ParseStack(args, nargs, "O!|z:escape_encode",
224 &PyBytes_Type, &data, &errors)) {
Victor Stinner259f0e42017-01-17 01:35:17 +0100225 goto exit;
226 }
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300227 return_value = _codecs_escape_encode_impl(module, data, errors);
228
229exit:
230 return return_value;
231}
232
233PyDoc_STRVAR(_codecs_unicode_internal_decode__doc__,
234"unicode_internal_decode($module, obj, errors=None, /)\n"
235"--\n"
236"\n");
237
238#define _CODECS_UNICODE_INTERNAL_DECODE_METHODDEF \
Serhiy Storchaka4a934d42018-11-27 11:27:36 +0200239 {"unicode_internal_decode", (PyCFunction)(void(*)(void))_codecs_unicode_internal_decode, METH_FASTCALL, _codecs_unicode_internal_decode__doc__},
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300240
241static PyObject *
Serhiy Storchaka1a2b24f2016-07-07 17:35:15 +0300242_codecs_unicode_internal_decode_impl(PyObject *module, PyObject *obj,
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300243 const char *errors);
244
245static PyObject *
Serhiy Storchakaa5552f02017-12-15 13:11:11 +0200246_codecs_unicode_internal_decode(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300247{
248 PyObject *return_value = NULL;
249 PyObject *obj;
250 const char *errors = NULL;
251
Sylvain74453812017-06-10 06:51:48 +0200252 if (!_PyArg_ParseStack(args, nargs, "O|z:unicode_internal_decode",
253 &obj, &errors)) {
Victor Stinner259f0e42017-01-17 01:35:17 +0100254 goto exit;
255 }
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300256 return_value = _codecs_unicode_internal_decode_impl(module, obj, errors);
257
258exit:
259 return return_value;
260}
261
262PyDoc_STRVAR(_codecs_utf_7_decode__doc__,
263"utf_7_decode($module, data, errors=None, final=False, /)\n"
264"--\n"
265"\n");
266
267#define _CODECS_UTF_7_DECODE_METHODDEF \
Serhiy Storchaka4a934d42018-11-27 11:27:36 +0200268 {"utf_7_decode", (PyCFunction)(void(*)(void))_codecs_utf_7_decode, METH_FASTCALL, _codecs_utf_7_decode__doc__},
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300269
270static PyObject *
Serhiy Storchaka1a2b24f2016-07-07 17:35:15 +0300271_codecs_utf_7_decode_impl(PyObject *module, Py_buffer *data,
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300272 const char *errors, int final);
273
274static PyObject *
Serhiy Storchakaa5552f02017-12-15 13:11:11 +0200275_codecs_utf_7_decode(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300276{
277 PyObject *return_value = NULL;
278 Py_buffer data = {NULL, NULL};
279 const char *errors = NULL;
280 int final = 0;
281
Sylvain74453812017-06-10 06:51:48 +0200282 if (!_PyArg_ParseStack(args, nargs, "y*|zi:utf_7_decode",
283 &data, &errors, &final)) {
Victor Stinner259f0e42017-01-17 01:35:17 +0100284 goto exit;
285 }
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300286 return_value = _codecs_utf_7_decode_impl(module, &data, errors, final);
287
288exit:
289 /* Cleanup for data */
Serhiy Storchaka5dee6552016-06-09 16:16:06 +0300290 if (data.obj) {
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300291 PyBuffer_Release(&data);
Serhiy Storchaka5dee6552016-06-09 16:16:06 +0300292 }
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300293
294 return return_value;
295}
296
297PyDoc_STRVAR(_codecs_utf_8_decode__doc__,
298"utf_8_decode($module, data, errors=None, final=False, /)\n"
299"--\n"
300"\n");
301
302#define _CODECS_UTF_8_DECODE_METHODDEF \
Serhiy Storchaka4a934d42018-11-27 11:27:36 +0200303 {"utf_8_decode", (PyCFunction)(void(*)(void))_codecs_utf_8_decode, METH_FASTCALL, _codecs_utf_8_decode__doc__},
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300304
305static PyObject *
Serhiy Storchaka1a2b24f2016-07-07 17:35:15 +0300306_codecs_utf_8_decode_impl(PyObject *module, Py_buffer *data,
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300307 const char *errors, int final);
308
309static PyObject *
Serhiy Storchakaa5552f02017-12-15 13:11:11 +0200310_codecs_utf_8_decode(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300311{
312 PyObject *return_value = NULL;
313 Py_buffer data = {NULL, NULL};
314 const char *errors = NULL;
315 int final = 0;
316
Sylvain74453812017-06-10 06:51:48 +0200317 if (!_PyArg_ParseStack(args, nargs, "y*|zi:utf_8_decode",
318 &data, &errors, &final)) {
Victor Stinner259f0e42017-01-17 01:35:17 +0100319 goto exit;
320 }
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300321 return_value = _codecs_utf_8_decode_impl(module, &data, errors, final);
322
323exit:
324 /* Cleanup for data */
Serhiy Storchaka5dee6552016-06-09 16:16:06 +0300325 if (data.obj) {
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300326 PyBuffer_Release(&data);
Serhiy Storchaka5dee6552016-06-09 16:16:06 +0300327 }
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300328
329 return return_value;
330}
331
332PyDoc_STRVAR(_codecs_utf_16_decode__doc__,
333"utf_16_decode($module, data, errors=None, final=False, /)\n"
334"--\n"
335"\n");
336
337#define _CODECS_UTF_16_DECODE_METHODDEF \
Serhiy Storchaka4a934d42018-11-27 11:27:36 +0200338 {"utf_16_decode", (PyCFunction)(void(*)(void))_codecs_utf_16_decode, METH_FASTCALL, _codecs_utf_16_decode__doc__},
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300339
340static PyObject *
Serhiy Storchaka1a2b24f2016-07-07 17:35:15 +0300341_codecs_utf_16_decode_impl(PyObject *module, Py_buffer *data,
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300342 const char *errors, int final);
343
344static PyObject *
Serhiy Storchakaa5552f02017-12-15 13:11:11 +0200345_codecs_utf_16_decode(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300346{
347 PyObject *return_value = NULL;
348 Py_buffer data = {NULL, NULL};
349 const char *errors = NULL;
350 int final = 0;
351
Sylvain74453812017-06-10 06:51:48 +0200352 if (!_PyArg_ParseStack(args, nargs, "y*|zi:utf_16_decode",
353 &data, &errors, &final)) {
Victor Stinner259f0e42017-01-17 01:35:17 +0100354 goto exit;
355 }
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300356 return_value = _codecs_utf_16_decode_impl(module, &data, errors, final);
357
358exit:
359 /* Cleanup for data */
Serhiy Storchaka5dee6552016-06-09 16:16:06 +0300360 if (data.obj) {
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300361 PyBuffer_Release(&data);
Serhiy Storchaka5dee6552016-06-09 16:16:06 +0300362 }
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300363
364 return return_value;
365}
366
367PyDoc_STRVAR(_codecs_utf_16_le_decode__doc__,
368"utf_16_le_decode($module, data, errors=None, final=False, /)\n"
369"--\n"
370"\n");
371
372#define _CODECS_UTF_16_LE_DECODE_METHODDEF \
Serhiy Storchaka4a934d42018-11-27 11:27:36 +0200373 {"utf_16_le_decode", (PyCFunction)(void(*)(void))_codecs_utf_16_le_decode, METH_FASTCALL, _codecs_utf_16_le_decode__doc__},
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300374
375static PyObject *
Serhiy Storchaka1a2b24f2016-07-07 17:35:15 +0300376_codecs_utf_16_le_decode_impl(PyObject *module, Py_buffer *data,
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300377 const char *errors, int final);
378
379static PyObject *
Serhiy Storchakaa5552f02017-12-15 13:11:11 +0200380_codecs_utf_16_le_decode(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300381{
382 PyObject *return_value = NULL;
383 Py_buffer data = {NULL, NULL};
384 const char *errors = NULL;
385 int final = 0;
386
Sylvain74453812017-06-10 06:51:48 +0200387 if (!_PyArg_ParseStack(args, nargs, "y*|zi:utf_16_le_decode",
388 &data, &errors, &final)) {
Victor Stinner259f0e42017-01-17 01:35:17 +0100389 goto exit;
390 }
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300391 return_value = _codecs_utf_16_le_decode_impl(module, &data, errors, final);
392
393exit:
394 /* Cleanup for data */
Serhiy Storchaka5dee6552016-06-09 16:16:06 +0300395 if (data.obj) {
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300396 PyBuffer_Release(&data);
Serhiy Storchaka5dee6552016-06-09 16:16:06 +0300397 }
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300398
399 return return_value;
400}
401
402PyDoc_STRVAR(_codecs_utf_16_be_decode__doc__,
403"utf_16_be_decode($module, data, errors=None, final=False, /)\n"
404"--\n"
405"\n");
406
407#define _CODECS_UTF_16_BE_DECODE_METHODDEF \
Serhiy Storchaka4a934d42018-11-27 11:27:36 +0200408 {"utf_16_be_decode", (PyCFunction)(void(*)(void))_codecs_utf_16_be_decode, METH_FASTCALL, _codecs_utf_16_be_decode__doc__},
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300409
410static PyObject *
Serhiy Storchaka1a2b24f2016-07-07 17:35:15 +0300411_codecs_utf_16_be_decode_impl(PyObject *module, Py_buffer *data,
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300412 const char *errors, int final);
413
414static PyObject *
Serhiy Storchakaa5552f02017-12-15 13:11:11 +0200415_codecs_utf_16_be_decode(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300416{
417 PyObject *return_value = NULL;
418 Py_buffer data = {NULL, NULL};
419 const char *errors = NULL;
420 int final = 0;
421
Sylvain74453812017-06-10 06:51:48 +0200422 if (!_PyArg_ParseStack(args, nargs, "y*|zi:utf_16_be_decode",
423 &data, &errors, &final)) {
Victor Stinner259f0e42017-01-17 01:35:17 +0100424 goto exit;
425 }
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300426 return_value = _codecs_utf_16_be_decode_impl(module, &data, errors, final);
427
428exit:
429 /* Cleanup for data */
Serhiy Storchaka5dee6552016-06-09 16:16:06 +0300430 if (data.obj) {
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300431 PyBuffer_Release(&data);
Serhiy Storchaka5dee6552016-06-09 16:16:06 +0300432 }
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300433
434 return return_value;
435}
436
437PyDoc_STRVAR(_codecs_utf_16_ex_decode__doc__,
438"utf_16_ex_decode($module, data, errors=None, byteorder=0, final=False,\n"
439" /)\n"
440"--\n"
441"\n");
442
443#define _CODECS_UTF_16_EX_DECODE_METHODDEF \
Serhiy Storchaka4a934d42018-11-27 11:27:36 +0200444 {"utf_16_ex_decode", (PyCFunction)(void(*)(void))_codecs_utf_16_ex_decode, METH_FASTCALL, _codecs_utf_16_ex_decode__doc__},
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300445
446static PyObject *
Serhiy Storchaka1a2b24f2016-07-07 17:35:15 +0300447_codecs_utf_16_ex_decode_impl(PyObject *module, Py_buffer *data,
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300448 const char *errors, int byteorder, int final);
449
450static PyObject *
Serhiy Storchakaa5552f02017-12-15 13:11:11 +0200451_codecs_utf_16_ex_decode(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300452{
453 PyObject *return_value = NULL;
454 Py_buffer data = {NULL, NULL};
455 const char *errors = NULL;
456 int byteorder = 0;
457 int final = 0;
458
Sylvain74453812017-06-10 06:51:48 +0200459 if (!_PyArg_ParseStack(args, nargs, "y*|zii:utf_16_ex_decode",
460 &data, &errors, &byteorder, &final)) {
Victor Stinner259f0e42017-01-17 01:35:17 +0100461 goto exit;
462 }
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300463 return_value = _codecs_utf_16_ex_decode_impl(module, &data, errors, byteorder, final);
464
465exit:
466 /* Cleanup for data */
Serhiy Storchaka5dee6552016-06-09 16:16:06 +0300467 if (data.obj) {
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300468 PyBuffer_Release(&data);
Serhiy Storchaka5dee6552016-06-09 16:16:06 +0300469 }
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300470
471 return return_value;
472}
473
474PyDoc_STRVAR(_codecs_utf_32_decode__doc__,
475"utf_32_decode($module, data, errors=None, final=False, /)\n"
476"--\n"
477"\n");
478
479#define _CODECS_UTF_32_DECODE_METHODDEF \
Serhiy Storchaka4a934d42018-11-27 11:27:36 +0200480 {"utf_32_decode", (PyCFunction)(void(*)(void))_codecs_utf_32_decode, METH_FASTCALL, _codecs_utf_32_decode__doc__},
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300481
482static PyObject *
Serhiy Storchaka1a2b24f2016-07-07 17:35:15 +0300483_codecs_utf_32_decode_impl(PyObject *module, Py_buffer *data,
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300484 const char *errors, int final);
485
486static PyObject *
Serhiy Storchakaa5552f02017-12-15 13:11:11 +0200487_codecs_utf_32_decode(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300488{
489 PyObject *return_value = NULL;
490 Py_buffer data = {NULL, NULL};
491 const char *errors = NULL;
492 int final = 0;
493
Sylvain74453812017-06-10 06:51:48 +0200494 if (!_PyArg_ParseStack(args, nargs, "y*|zi:utf_32_decode",
495 &data, &errors, &final)) {
Victor Stinner259f0e42017-01-17 01:35:17 +0100496 goto exit;
497 }
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300498 return_value = _codecs_utf_32_decode_impl(module, &data, errors, final);
499
500exit:
501 /* Cleanup for data */
Serhiy Storchaka5dee6552016-06-09 16:16:06 +0300502 if (data.obj) {
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300503 PyBuffer_Release(&data);
Serhiy Storchaka5dee6552016-06-09 16:16:06 +0300504 }
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300505
506 return return_value;
507}
508
509PyDoc_STRVAR(_codecs_utf_32_le_decode__doc__,
510"utf_32_le_decode($module, data, errors=None, final=False, /)\n"
511"--\n"
512"\n");
513
514#define _CODECS_UTF_32_LE_DECODE_METHODDEF \
Serhiy Storchaka4a934d42018-11-27 11:27:36 +0200515 {"utf_32_le_decode", (PyCFunction)(void(*)(void))_codecs_utf_32_le_decode, METH_FASTCALL, _codecs_utf_32_le_decode__doc__},
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300516
517static PyObject *
Serhiy Storchaka1a2b24f2016-07-07 17:35:15 +0300518_codecs_utf_32_le_decode_impl(PyObject *module, Py_buffer *data,
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300519 const char *errors, int final);
520
521static PyObject *
Serhiy Storchakaa5552f02017-12-15 13:11:11 +0200522_codecs_utf_32_le_decode(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300523{
524 PyObject *return_value = NULL;
525 Py_buffer data = {NULL, NULL};
526 const char *errors = NULL;
527 int final = 0;
528
Sylvain74453812017-06-10 06:51:48 +0200529 if (!_PyArg_ParseStack(args, nargs, "y*|zi:utf_32_le_decode",
530 &data, &errors, &final)) {
Victor Stinner259f0e42017-01-17 01:35:17 +0100531 goto exit;
532 }
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300533 return_value = _codecs_utf_32_le_decode_impl(module, &data, errors, final);
534
535exit:
536 /* Cleanup for data */
Serhiy Storchaka5dee6552016-06-09 16:16:06 +0300537 if (data.obj) {
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300538 PyBuffer_Release(&data);
Serhiy Storchaka5dee6552016-06-09 16:16:06 +0300539 }
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300540
541 return return_value;
542}
543
544PyDoc_STRVAR(_codecs_utf_32_be_decode__doc__,
545"utf_32_be_decode($module, data, errors=None, final=False, /)\n"
546"--\n"
547"\n");
548
549#define _CODECS_UTF_32_BE_DECODE_METHODDEF \
Serhiy Storchaka4a934d42018-11-27 11:27:36 +0200550 {"utf_32_be_decode", (PyCFunction)(void(*)(void))_codecs_utf_32_be_decode, METH_FASTCALL, _codecs_utf_32_be_decode__doc__},
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300551
552static PyObject *
Serhiy Storchaka1a2b24f2016-07-07 17:35:15 +0300553_codecs_utf_32_be_decode_impl(PyObject *module, Py_buffer *data,
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300554 const char *errors, int final);
555
556static PyObject *
Serhiy Storchakaa5552f02017-12-15 13:11:11 +0200557_codecs_utf_32_be_decode(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300558{
559 PyObject *return_value = NULL;
560 Py_buffer data = {NULL, NULL};
561 const char *errors = NULL;
562 int final = 0;
563
Sylvain74453812017-06-10 06:51:48 +0200564 if (!_PyArg_ParseStack(args, nargs, "y*|zi:utf_32_be_decode",
565 &data, &errors, &final)) {
Victor Stinner259f0e42017-01-17 01:35:17 +0100566 goto exit;
567 }
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300568 return_value = _codecs_utf_32_be_decode_impl(module, &data, errors, final);
569
570exit:
571 /* Cleanup for data */
Serhiy Storchaka5dee6552016-06-09 16:16:06 +0300572 if (data.obj) {
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300573 PyBuffer_Release(&data);
Serhiy Storchaka5dee6552016-06-09 16:16:06 +0300574 }
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300575
576 return return_value;
577}
578
579PyDoc_STRVAR(_codecs_utf_32_ex_decode__doc__,
580"utf_32_ex_decode($module, data, errors=None, byteorder=0, final=False,\n"
581" /)\n"
582"--\n"
583"\n");
584
585#define _CODECS_UTF_32_EX_DECODE_METHODDEF \
Serhiy Storchaka4a934d42018-11-27 11:27:36 +0200586 {"utf_32_ex_decode", (PyCFunction)(void(*)(void))_codecs_utf_32_ex_decode, METH_FASTCALL, _codecs_utf_32_ex_decode__doc__},
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300587
588static PyObject *
Serhiy Storchaka1a2b24f2016-07-07 17:35:15 +0300589_codecs_utf_32_ex_decode_impl(PyObject *module, Py_buffer *data,
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300590 const char *errors, int byteorder, int final);
591
592static PyObject *
Serhiy Storchakaa5552f02017-12-15 13:11:11 +0200593_codecs_utf_32_ex_decode(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300594{
595 PyObject *return_value = NULL;
596 Py_buffer data = {NULL, NULL};
597 const char *errors = NULL;
598 int byteorder = 0;
599 int final = 0;
600
Sylvain74453812017-06-10 06:51:48 +0200601 if (!_PyArg_ParseStack(args, nargs, "y*|zii:utf_32_ex_decode",
602 &data, &errors, &byteorder, &final)) {
Victor Stinner259f0e42017-01-17 01:35:17 +0100603 goto exit;
604 }
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300605 return_value = _codecs_utf_32_ex_decode_impl(module, &data, errors, byteorder, final);
606
607exit:
608 /* Cleanup for data */
Serhiy Storchaka5dee6552016-06-09 16:16:06 +0300609 if (data.obj) {
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300610 PyBuffer_Release(&data);
Serhiy Storchaka5dee6552016-06-09 16:16:06 +0300611 }
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300612
613 return return_value;
614}
615
616PyDoc_STRVAR(_codecs_unicode_escape_decode__doc__,
617"unicode_escape_decode($module, data, errors=None, /)\n"
618"--\n"
619"\n");
620
621#define _CODECS_UNICODE_ESCAPE_DECODE_METHODDEF \
Serhiy Storchaka4a934d42018-11-27 11:27:36 +0200622 {"unicode_escape_decode", (PyCFunction)(void(*)(void))_codecs_unicode_escape_decode, METH_FASTCALL, _codecs_unicode_escape_decode__doc__},
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300623
624static PyObject *
Serhiy Storchaka1a2b24f2016-07-07 17:35:15 +0300625_codecs_unicode_escape_decode_impl(PyObject *module, Py_buffer *data,
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300626 const char *errors);
627
628static PyObject *
Serhiy Storchakaa5552f02017-12-15 13:11:11 +0200629_codecs_unicode_escape_decode(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300630{
631 PyObject *return_value = NULL;
632 Py_buffer data = {NULL, NULL};
633 const char *errors = NULL;
634
Sylvain74453812017-06-10 06:51:48 +0200635 if (!_PyArg_ParseStack(args, nargs, "s*|z:unicode_escape_decode",
636 &data, &errors)) {
Victor Stinner259f0e42017-01-17 01:35:17 +0100637 goto exit;
638 }
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300639 return_value = _codecs_unicode_escape_decode_impl(module, &data, errors);
640
641exit:
642 /* Cleanup for data */
Serhiy Storchaka5dee6552016-06-09 16:16:06 +0300643 if (data.obj) {
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300644 PyBuffer_Release(&data);
Serhiy Storchaka5dee6552016-06-09 16:16:06 +0300645 }
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300646
647 return return_value;
648}
649
650PyDoc_STRVAR(_codecs_raw_unicode_escape_decode__doc__,
651"raw_unicode_escape_decode($module, data, errors=None, /)\n"
652"--\n"
653"\n");
654
655#define _CODECS_RAW_UNICODE_ESCAPE_DECODE_METHODDEF \
Serhiy Storchaka4a934d42018-11-27 11:27:36 +0200656 {"raw_unicode_escape_decode", (PyCFunction)(void(*)(void))_codecs_raw_unicode_escape_decode, METH_FASTCALL, _codecs_raw_unicode_escape_decode__doc__},
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300657
658static PyObject *
Serhiy Storchaka1a2b24f2016-07-07 17:35:15 +0300659_codecs_raw_unicode_escape_decode_impl(PyObject *module, Py_buffer *data,
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300660 const char *errors);
661
662static PyObject *
Serhiy Storchakaa5552f02017-12-15 13:11:11 +0200663_codecs_raw_unicode_escape_decode(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300664{
665 PyObject *return_value = NULL;
666 Py_buffer data = {NULL, NULL};
667 const char *errors = NULL;
668
Sylvain74453812017-06-10 06:51:48 +0200669 if (!_PyArg_ParseStack(args, nargs, "s*|z:raw_unicode_escape_decode",
670 &data, &errors)) {
Victor Stinner259f0e42017-01-17 01:35:17 +0100671 goto exit;
672 }
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300673 return_value = _codecs_raw_unicode_escape_decode_impl(module, &data, errors);
674
675exit:
676 /* Cleanup for data */
Serhiy Storchaka5dee6552016-06-09 16:16:06 +0300677 if (data.obj) {
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300678 PyBuffer_Release(&data);
Serhiy Storchaka5dee6552016-06-09 16:16:06 +0300679 }
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300680
681 return return_value;
682}
683
684PyDoc_STRVAR(_codecs_latin_1_decode__doc__,
685"latin_1_decode($module, data, errors=None, /)\n"
686"--\n"
687"\n");
688
689#define _CODECS_LATIN_1_DECODE_METHODDEF \
Serhiy Storchaka4a934d42018-11-27 11:27:36 +0200690 {"latin_1_decode", (PyCFunction)(void(*)(void))_codecs_latin_1_decode, METH_FASTCALL, _codecs_latin_1_decode__doc__},
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300691
692static PyObject *
Serhiy Storchaka1a2b24f2016-07-07 17:35:15 +0300693_codecs_latin_1_decode_impl(PyObject *module, Py_buffer *data,
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300694 const char *errors);
695
696static PyObject *
Serhiy Storchakaa5552f02017-12-15 13:11:11 +0200697_codecs_latin_1_decode(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300698{
699 PyObject *return_value = NULL;
700 Py_buffer data = {NULL, NULL};
701 const char *errors = NULL;
702
Sylvain74453812017-06-10 06:51:48 +0200703 if (!_PyArg_ParseStack(args, nargs, "y*|z:latin_1_decode",
704 &data, &errors)) {
Victor Stinner259f0e42017-01-17 01:35:17 +0100705 goto exit;
706 }
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300707 return_value = _codecs_latin_1_decode_impl(module, &data, errors);
708
709exit:
710 /* Cleanup for data */
Serhiy Storchaka5dee6552016-06-09 16:16:06 +0300711 if (data.obj) {
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300712 PyBuffer_Release(&data);
Serhiy Storchaka5dee6552016-06-09 16:16:06 +0300713 }
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300714
715 return return_value;
716}
717
718PyDoc_STRVAR(_codecs_ascii_decode__doc__,
719"ascii_decode($module, data, errors=None, /)\n"
720"--\n"
721"\n");
722
723#define _CODECS_ASCII_DECODE_METHODDEF \
Serhiy Storchaka4a934d42018-11-27 11:27:36 +0200724 {"ascii_decode", (PyCFunction)(void(*)(void))_codecs_ascii_decode, METH_FASTCALL, _codecs_ascii_decode__doc__},
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300725
726static PyObject *
Serhiy Storchaka1a2b24f2016-07-07 17:35:15 +0300727_codecs_ascii_decode_impl(PyObject *module, Py_buffer *data,
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300728 const char *errors);
729
730static PyObject *
Serhiy Storchakaa5552f02017-12-15 13:11:11 +0200731_codecs_ascii_decode(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300732{
733 PyObject *return_value = NULL;
734 Py_buffer data = {NULL, NULL};
735 const char *errors = NULL;
736
Sylvain74453812017-06-10 06:51:48 +0200737 if (!_PyArg_ParseStack(args, nargs, "y*|z:ascii_decode",
738 &data, &errors)) {
Victor Stinner259f0e42017-01-17 01:35:17 +0100739 goto exit;
740 }
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300741 return_value = _codecs_ascii_decode_impl(module, &data, errors);
742
743exit:
744 /* Cleanup for data */
Serhiy Storchaka5dee6552016-06-09 16:16:06 +0300745 if (data.obj) {
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300746 PyBuffer_Release(&data);
Serhiy Storchaka5dee6552016-06-09 16:16:06 +0300747 }
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300748
749 return return_value;
750}
751
752PyDoc_STRVAR(_codecs_charmap_decode__doc__,
753"charmap_decode($module, data, errors=None, mapping=None, /)\n"
754"--\n"
755"\n");
756
757#define _CODECS_CHARMAP_DECODE_METHODDEF \
Serhiy Storchaka4a934d42018-11-27 11:27:36 +0200758 {"charmap_decode", (PyCFunction)(void(*)(void))_codecs_charmap_decode, METH_FASTCALL, _codecs_charmap_decode__doc__},
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300759
760static PyObject *
Serhiy Storchaka1a2b24f2016-07-07 17:35:15 +0300761_codecs_charmap_decode_impl(PyObject *module, Py_buffer *data,
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300762 const char *errors, PyObject *mapping);
763
764static PyObject *
Serhiy Storchakaa5552f02017-12-15 13:11:11 +0200765_codecs_charmap_decode(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300766{
767 PyObject *return_value = NULL;
768 Py_buffer data = {NULL, NULL};
769 const char *errors = NULL;
770 PyObject *mapping = NULL;
771
Sylvain74453812017-06-10 06:51:48 +0200772 if (!_PyArg_ParseStack(args, nargs, "y*|zO:charmap_decode",
773 &data, &errors, &mapping)) {
Victor Stinner259f0e42017-01-17 01:35:17 +0100774 goto exit;
775 }
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300776 return_value = _codecs_charmap_decode_impl(module, &data, errors, mapping);
777
778exit:
779 /* Cleanup for data */
Serhiy Storchaka5dee6552016-06-09 16:16:06 +0300780 if (data.obj) {
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300781 PyBuffer_Release(&data);
Serhiy Storchaka5dee6552016-06-09 16:16:06 +0300782 }
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300783
784 return return_value;
785}
786
Steve Dowercc16be82016-09-08 10:35:16 -0700787#if defined(MS_WINDOWS)
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300788
789PyDoc_STRVAR(_codecs_mbcs_decode__doc__,
790"mbcs_decode($module, data, errors=None, final=False, /)\n"
791"--\n"
792"\n");
793
794#define _CODECS_MBCS_DECODE_METHODDEF \
Serhiy Storchaka4a934d42018-11-27 11:27:36 +0200795 {"mbcs_decode", (PyCFunction)(void(*)(void))_codecs_mbcs_decode, METH_FASTCALL, _codecs_mbcs_decode__doc__},
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300796
797static PyObject *
Serhiy Storchaka1a2b24f2016-07-07 17:35:15 +0300798_codecs_mbcs_decode_impl(PyObject *module, Py_buffer *data,
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300799 const char *errors, int final);
800
801static PyObject *
Serhiy Storchakaa5552f02017-12-15 13:11:11 +0200802_codecs_mbcs_decode(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300803{
804 PyObject *return_value = NULL;
805 Py_buffer data = {NULL, NULL};
806 const char *errors = NULL;
807 int final = 0;
808
Sylvain74453812017-06-10 06:51:48 +0200809 if (!_PyArg_ParseStack(args, nargs, "y*|zi:mbcs_decode",
810 &data, &errors, &final)) {
Victor Stinner259f0e42017-01-17 01:35:17 +0100811 goto exit;
812 }
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300813 return_value = _codecs_mbcs_decode_impl(module, &data, errors, final);
814
815exit:
816 /* Cleanup for data */
Serhiy Storchaka5dee6552016-06-09 16:16:06 +0300817 if (data.obj) {
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300818 PyBuffer_Release(&data);
Serhiy Storchaka5dee6552016-06-09 16:16:06 +0300819 }
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300820
821 return return_value;
822}
823
Steve Dowercc16be82016-09-08 10:35:16 -0700824#endif /* defined(MS_WINDOWS) */
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300825
Steve Dowercc16be82016-09-08 10:35:16 -0700826#if defined(MS_WINDOWS)
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300827
Steve Dowerf5aba582016-09-06 19:42:27 -0700828PyDoc_STRVAR(_codecs_oem_decode__doc__,
829"oem_decode($module, data, errors=None, final=False, /)\n"
830"--\n"
831"\n");
832
833#define _CODECS_OEM_DECODE_METHODDEF \
Serhiy Storchaka4a934d42018-11-27 11:27:36 +0200834 {"oem_decode", (PyCFunction)(void(*)(void))_codecs_oem_decode, METH_FASTCALL, _codecs_oem_decode__doc__},
Steve Dowerf5aba582016-09-06 19:42:27 -0700835
836static PyObject *
837_codecs_oem_decode_impl(PyObject *module, Py_buffer *data,
838 const char *errors, int final);
839
840static PyObject *
Serhiy Storchakaa5552f02017-12-15 13:11:11 +0200841_codecs_oem_decode(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
Steve Dowerf5aba582016-09-06 19:42:27 -0700842{
843 PyObject *return_value = NULL;
844 Py_buffer data = {NULL, NULL};
845 const char *errors = NULL;
846 int final = 0;
847
Sylvain74453812017-06-10 06:51:48 +0200848 if (!_PyArg_ParseStack(args, nargs, "y*|zi:oem_decode",
849 &data, &errors, &final)) {
Victor Stinner259f0e42017-01-17 01:35:17 +0100850 goto exit;
851 }
Steve Dowerf5aba582016-09-06 19:42:27 -0700852 return_value = _codecs_oem_decode_impl(module, &data, errors, final);
853
854exit:
855 /* Cleanup for data */
856 if (data.obj) {
857 PyBuffer_Release(&data);
858 }
859
860 return return_value;
861}
862
Steve Dowercc16be82016-09-08 10:35:16 -0700863#endif /* defined(MS_WINDOWS) */
Steve Dowerf5aba582016-09-06 19:42:27 -0700864
Steve Dowercc16be82016-09-08 10:35:16 -0700865#if defined(MS_WINDOWS)
Steve Dowerf5aba582016-09-06 19:42:27 -0700866
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300867PyDoc_STRVAR(_codecs_code_page_decode__doc__,
868"code_page_decode($module, codepage, data, errors=None, final=False, /)\n"
869"--\n"
870"\n");
871
872#define _CODECS_CODE_PAGE_DECODE_METHODDEF \
Serhiy Storchaka4a934d42018-11-27 11:27:36 +0200873 {"code_page_decode", (PyCFunction)(void(*)(void))_codecs_code_page_decode, METH_FASTCALL, _codecs_code_page_decode__doc__},
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300874
875static PyObject *
Serhiy Storchaka1a2b24f2016-07-07 17:35:15 +0300876_codecs_code_page_decode_impl(PyObject *module, int codepage,
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300877 Py_buffer *data, const char *errors, int final);
878
879static PyObject *
Serhiy Storchakaa5552f02017-12-15 13:11:11 +0200880_codecs_code_page_decode(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300881{
882 PyObject *return_value = NULL;
883 int codepage;
884 Py_buffer data = {NULL, NULL};
885 const char *errors = NULL;
886 int final = 0;
887
Sylvain74453812017-06-10 06:51:48 +0200888 if (!_PyArg_ParseStack(args, nargs, "iy*|zi:code_page_decode",
889 &codepage, &data, &errors, &final)) {
Victor Stinner259f0e42017-01-17 01:35:17 +0100890 goto exit;
891 }
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300892 return_value = _codecs_code_page_decode_impl(module, codepage, &data, errors, final);
893
894exit:
895 /* Cleanup for data */
Serhiy Storchaka5dee6552016-06-09 16:16:06 +0300896 if (data.obj) {
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300897 PyBuffer_Release(&data);
Serhiy Storchaka5dee6552016-06-09 16:16:06 +0300898 }
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300899
900 return return_value;
901}
902
Steve Dowercc16be82016-09-08 10:35:16 -0700903#endif /* defined(MS_WINDOWS) */
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300904
905PyDoc_STRVAR(_codecs_readbuffer_encode__doc__,
906"readbuffer_encode($module, data, errors=None, /)\n"
907"--\n"
908"\n");
909
910#define _CODECS_READBUFFER_ENCODE_METHODDEF \
Serhiy Storchaka4a934d42018-11-27 11:27:36 +0200911 {"readbuffer_encode", (PyCFunction)(void(*)(void))_codecs_readbuffer_encode, METH_FASTCALL, _codecs_readbuffer_encode__doc__},
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300912
913static PyObject *
Serhiy Storchaka1a2b24f2016-07-07 17:35:15 +0300914_codecs_readbuffer_encode_impl(PyObject *module, Py_buffer *data,
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300915 const char *errors);
916
917static PyObject *
Serhiy Storchakaa5552f02017-12-15 13:11:11 +0200918_codecs_readbuffer_encode(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300919{
920 PyObject *return_value = NULL;
921 Py_buffer data = {NULL, NULL};
922 const char *errors = NULL;
923
Sylvain74453812017-06-10 06:51:48 +0200924 if (!_PyArg_ParseStack(args, nargs, "s*|z:readbuffer_encode",
925 &data, &errors)) {
Victor Stinner259f0e42017-01-17 01:35:17 +0100926 goto exit;
927 }
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300928 return_value = _codecs_readbuffer_encode_impl(module, &data, errors);
929
930exit:
931 /* Cleanup for data */
Serhiy Storchaka5dee6552016-06-09 16:16:06 +0300932 if (data.obj) {
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300933 PyBuffer_Release(&data);
Serhiy Storchaka5dee6552016-06-09 16:16:06 +0300934 }
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300935
936 return return_value;
937}
938
939PyDoc_STRVAR(_codecs_unicode_internal_encode__doc__,
940"unicode_internal_encode($module, obj, errors=None, /)\n"
941"--\n"
942"\n");
943
944#define _CODECS_UNICODE_INTERNAL_ENCODE_METHODDEF \
Serhiy Storchaka4a934d42018-11-27 11:27:36 +0200945 {"unicode_internal_encode", (PyCFunction)(void(*)(void))_codecs_unicode_internal_encode, METH_FASTCALL, _codecs_unicode_internal_encode__doc__},
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300946
947static PyObject *
Serhiy Storchaka1a2b24f2016-07-07 17:35:15 +0300948_codecs_unicode_internal_encode_impl(PyObject *module, PyObject *obj,
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300949 const char *errors);
950
951static PyObject *
Serhiy Storchakaa5552f02017-12-15 13:11:11 +0200952_codecs_unicode_internal_encode(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300953{
954 PyObject *return_value = NULL;
955 PyObject *obj;
956 const char *errors = NULL;
957
Sylvain74453812017-06-10 06:51:48 +0200958 if (!_PyArg_ParseStack(args, nargs, "O|z:unicode_internal_encode",
959 &obj, &errors)) {
Victor Stinner259f0e42017-01-17 01:35:17 +0100960 goto exit;
961 }
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300962 return_value = _codecs_unicode_internal_encode_impl(module, obj, errors);
963
964exit:
965 return return_value;
966}
967
968PyDoc_STRVAR(_codecs_utf_7_encode__doc__,
969"utf_7_encode($module, str, errors=None, /)\n"
970"--\n"
971"\n");
972
973#define _CODECS_UTF_7_ENCODE_METHODDEF \
Serhiy Storchaka4a934d42018-11-27 11:27:36 +0200974 {"utf_7_encode", (PyCFunction)(void(*)(void))_codecs_utf_7_encode, METH_FASTCALL, _codecs_utf_7_encode__doc__},
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300975
976static PyObject *
Serhiy Storchaka1a2b24f2016-07-07 17:35:15 +0300977_codecs_utf_7_encode_impl(PyObject *module, PyObject *str,
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300978 const char *errors);
979
980static PyObject *
Serhiy Storchakaa5552f02017-12-15 13:11:11 +0200981_codecs_utf_7_encode(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300982{
983 PyObject *return_value = NULL;
984 PyObject *str;
985 const char *errors = NULL;
986
Sylvain74453812017-06-10 06:51:48 +0200987 if (!_PyArg_ParseStack(args, nargs, "U|z:utf_7_encode",
988 &str, &errors)) {
Victor Stinner259f0e42017-01-17 01:35:17 +0100989 goto exit;
990 }
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300991 return_value = _codecs_utf_7_encode_impl(module, str, errors);
992
993exit:
994 return return_value;
995}
996
997PyDoc_STRVAR(_codecs_utf_8_encode__doc__,
998"utf_8_encode($module, str, errors=None, /)\n"
999"--\n"
1000"\n");
1001
1002#define _CODECS_UTF_8_ENCODE_METHODDEF \
Serhiy Storchaka4a934d42018-11-27 11:27:36 +02001003 {"utf_8_encode", (PyCFunction)(void(*)(void))_codecs_utf_8_encode, METH_FASTCALL, _codecs_utf_8_encode__doc__},
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +03001004
1005static PyObject *
Serhiy Storchaka1a2b24f2016-07-07 17:35:15 +03001006_codecs_utf_8_encode_impl(PyObject *module, PyObject *str,
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +03001007 const char *errors);
1008
1009static PyObject *
Serhiy Storchakaa5552f02017-12-15 13:11:11 +02001010_codecs_utf_8_encode(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +03001011{
1012 PyObject *return_value = NULL;
1013 PyObject *str;
1014 const char *errors = NULL;
1015
Sylvain74453812017-06-10 06:51:48 +02001016 if (!_PyArg_ParseStack(args, nargs, "U|z:utf_8_encode",
1017 &str, &errors)) {
Victor Stinner259f0e42017-01-17 01:35:17 +01001018 goto exit;
1019 }
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +03001020 return_value = _codecs_utf_8_encode_impl(module, str, errors);
1021
1022exit:
1023 return return_value;
1024}
1025
1026PyDoc_STRVAR(_codecs_utf_16_encode__doc__,
1027"utf_16_encode($module, str, errors=None, byteorder=0, /)\n"
1028"--\n"
1029"\n");
1030
1031#define _CODECS_UTF_16_ENCODE_METHODDEF \
Serhiy Storchaka4a934d42018-11-27 11:27:36 +02001032 {"utf_16_encode", (PyCFunction)(void(*)(void))_codecs_utf_16_encode, METH_FASTCALL, _codecs_utf_16_encode__doc__},
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +03001033
1034static PyObject *
Serhiy Storchaka1a2b24f2016-07-07 17:35:15 +03001035_codecs_utf_16_encode_impl(PyObject *module, PyObject *str,
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +03001036 const char *errors, int byteorder);
1037
1038static PyObject *
Serhiy Storchakaa5552f02017-12-15 13:11:11 +02001039_codecs_utf_16_encode(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +03001040{
1041 PyObject *return_value = NULL;
1042 PyObject *str;
1043 const char *errors = NULL;
1044 int byteorder = 0;
1045
Sylvain74453812017-06-10 06:51:48 +02001046 if (!_PyArg_ParseStack(args, nargs, "U|zi:utf_16_encode",
1047 &str, &errors, &byteorder)) {
Victor Stinner259f0e42017-01-17 01:35:17 +01001048 goto exit;
1049 }
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +03001050 return_value = _codecs_utf_16_encode_impl(module, str, errors, byteorder);
1051
1052exit:
1053 return return_value;
1054}
1055
1056PyDoc_STRVAR(_codecs_utf_16_le_encode__doc__,
1057"utf_16_le_encode($module, str, errors=None, /)\n"
1058"--\n"
1059"\n");
1060
1061#define _CODECS_UTF_16_LE_ENCODE_METHODDEF \
Serhiy Storchaka4a934d42018-11-27 11:27:36 +02001062 {"utf_16_le_encode", (PyCFunction)(void(*)(void))_codecs_utf_16_le_encode, METH_FASTCALL, _codecs_utf_16_le_encode__doc__},
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +03001063
1064static PyObject *
Serhiy Storchaka1a2b24f2016-07-07 17:35:15 +03001065_codecs_utf_16_le_encode_impl(PyObject *module, PyObject *str,
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +03001066 const char *errors);
1067
1068static PyObject *
Serhiy Storchakaa5552f02017-12-15 13:11:11 +02001069_codecs_utf_16_le_encode(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +03001070{
1071 PyObject *return_value = NULL;
1072 PyObject *str;
1073 const char *errors = NULL;
1074
Sylvain74453812017-06-10 06:51:48 +02001075 if (!_PyArg_ParseStack(args, nargs, "U|z:utf_16_le_encode",
1076 &str, &errors)) {
Victor Stinner259f0e42017-01-17 01:35:17 +01001077 goto exit;
1078 }
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +03001079 return_value = _codecs_utf_16_le_encode_impl(module, str, errors);
1080
1081exit:
1082 return return_value;
1083}
1084
1085PyDoc_STRVAR(_codecs_utf_16_be_encode__doc__,
1086"utf_16_be_encode($module, str, errors=None, /)\n"
1087"--\n"
1088"\n");
1089
1090#define _CODECS_UTF_16_BE_ENCODE_METHODDEF \
Serhiy Storchaka4a934d42018-11-27 11:27:36 +02001091 {"utf_16_be_encode", (PyCFunction)(void(*)(void))_codecs_utf_16_be_encode, METH_FASTCALL, _codecs_utf_16_be_encode__doc__},
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +03001092
1093static PyObject *
Serhiy Storchaka1a2b24f2016-07-07 17:35:15 +03001094_codecs_utf_16_be_encode_impl(PyObject *module, PyObject *str,
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +03001095 const char *errors);
1096
1097static PyObject *
Serhiy Storchakaa5552f02017-12-15 13:11:11 +02001098_codecs_utf_16_be_encode(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +03001099{
1100 PyObject *return_value = NULL;
1101 PyObject *str;
1102 const char *errors = NULL;
1103
Sylvain74453812017-06-10 06:51:48 +02001104 if (!_PyArg_ParseStack(args, nargs, "U|z:utf_16_be_encode",
1105 &str, &errors)) {
Victor Stinner259f0e42017-01-17 01:35:17 +01001106 goto exit;
1107 }
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +03001108 return_value = _codecs_utf_16_be_encode_impl(module, str, errors);
1109
1110exit:
1111 return return_value;
1112}
1113
1114PyDoc_STRVAR(_codecs_utf_32_encode__doc__,
1115"utf_32_encode($module, str, errors=None, byteorder=0, /)\n"
1116"--\n"
1117"\n");
1118
1119#define _CODECS_UTF_32_ENCODE_METHODDEF \
Serhiy Storchaka4a934d42018-11-27 11:27:36 +02001120 {"utf_32_encode", (PyCFunction)(void(*)(void))_codecs_utf_32_encode, METH_FASTCALL, _codecs_utf_32_encode__doc__},
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +03001121
1122static PyObject *
Serhiy Storchaka1a2b24f2016-07-07 17:35:15 +03001123_codecs_utf_32_encode_impl(PyObject *module, PyObject *str,
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +03001124 const char *errors, int byteorder);
1125
1126static PyObject *
Serhiy Storchakaa5552f02017-12-15 13:11:11 +02001127_codecs_utf_32_encode(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +03001128{
1129 PyObject *return_value = NULL;
1130 PyObject *str;
1131 const char *errors = NULL;
1132 int byteorder = 0;
1133
Sylvain74453812017-06-10 06:51:48 +02001134 if (!_PyArg_ParseStack(args, nargs, "U|zi:utf_32_encode",
1135 &str, &errors, &byteorder)) {
Victor Stinner259f0e42017-01-17 01:35:17 +01001136 goto exit;
1137 }
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +03001138 return_value = _codecs_utf_32_encode_impl(module, str, errors, byteorder);
1139
1140exit:
1141 return return_value;
1142}
1143
1144PyDoc_STRVAR(_codecs_utf_32_le_encode__doc__,
1145"utf_32_le_encode($module, str, errors=None, /)\n"
1146"--\n"
1147"\n");
1148
1149#define _CODECS_UTF_32_LE_ENCODE_METHODDEF \
Serhiy Storchaka4a934d42018-11-27 11:27:36 +02001150 {"utf_32_le_encode", (PyCFunction)(void(*)(void))_codecs_utf_32_le_encode, METH_FASTCALL, _codecs_utf_32_le_encode__doc__},
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +03001151
1152static PyObject *
Serhiy Storchaka1a2b24f2016-07-07 17:35:15 +03001153_codecs_utf_32_le_encode_impl(PyObject *module, PyObject *str,
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +03001154 const char *errors);
1155
1156static PyObject *
Serhiy Storchakaa5552f02017-12-15 13:11:11 +02001157_codecs_utf_32_le_encode(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +03001158{
1159 PyObject *return_value = NULL;
1160 PyObject *str;
1161 const char *errors = NULL;
1162
Sylvain74453812017-06-10 06:51:48 +02001163 if (!_PyArg_ParseStack(args, nargs, "U|z:utf_32_le_encode",
1164 &str, &errors)) {
Victor Stinner259f0e42017-01-17 01:35:17 +01001165 goto exit;
1166 }
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +03001167 return_value = _codecs_utf_32_le_encode_impl(module, str, errors);
1168
1169exit:
1170 return return_value;
1171}
1172
1173PyDoc_STRVAR(_codecs_utf_32_be_encode__doc__,
1174"utf_32_be_encode($module, str, errors=None, /)\n"
1175"--\n"
1176"\n");
1177
1178#define _CODECS_UTF_32_BE_ENCODE_METHODDEF \
Serhiy Storchaka4a934d42018-11-27 11:27:36 +02001179 {"utf_32_be_encode", (PyCFunction)(void(*)(void))_codecs_utf_32_be_encode, METH_FASTCALL, _codecs_utf_32_be_encode__doc__},
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +03001180
1181static PyObject *
Serhiy Storchaka1a2b24f2016-07-07 17:35:15 +03001182_codecs_utf_32_be_encode_impl(PyObject *module, PyObject *str,
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +03001183 const char *errors);
1184
1185static PyObject *
Serhiy Storchakaa5552f02017-12-15 13:11:11 +02001186_codecs_utf_32_be_encode(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +03001187{
1188 PyObject *return_value = NULL;
1189 PyObject *str;
1190 const char *errors = NULL;
1191
Sylvain74453812017-06-10 06:51:48 +02001192 if (!_PyArg_ParseStack(args, nargs, "U|z:utf_32_be_encode",
1193 &str, &errors)) {
Victor Stinner259f0e42017-01-17 01:35:17 +01001194 goto exit;
1195 }
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +03001196 return_value = _codecs_utf_32_be_encode_impl(module, str, errors);
1197
1198exit:
1199 return return_value;
1200}
1201
1202PyDoc_STRVAR(_codecs_unicode_escape_encode__doc__,
1203"unicode_escape_encode($module, str, errors=None, /)\n"
1204"--\n"
1205"\n");
1206
1207#define _CODECS_UNICODE_ESCAPE_ENCODE_METHODDEF \
Serhiy Storchaka4a934d42018-11-27 11:27:36 +02001208 {"unicode_escape_encode", (PyCFunction)(void(*)(void))_codecs_unicode_escape_encode, METH_FASTCALL, _codecs_unicode_escape_encode__doc__},
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +03001209
1210static PyObject *
Serhiy Storchaka1a2b24f2016-07-07 17:35:15 +03001211_codecs_unicode_escape_encode_impl(PyObject *module, PyObject *str,
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +03001212 const char *errors);
1213
1214static PyObject *
Serhiy Storchakaa5552f02017-12-15 13:11:11 +02001215_codecs_unicode_escape_encode(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +03001216{
1217 PyObject *return_value = NULL;
1218 PyObject *str;
1219 const char *errors = NULL;
1220
Sylvain74453812017-06-10 06:51:48 +02001221 if (!_PyArg_ParseStack(args, nargs, "U|z:unicode_escape_encode",
1222 &str, &errors)) {
Victor Stinner259f0e42017-01-17 01:35:17 +01001223 goto exit;
1224 }
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +03001225 return_value = _codecs_unicode_escape_encode_impl(module, str, errors);
1226
1227exit:
1228 return return_value;
1229}
1230
1231PyDoc_STRVAR(_codecs_raw_unicode_escape_encode__doc__,
1232"raw_unicode_escape_encode($module, str, errors=None, /)\n"
1233"--\n"
1234"\n");
1235
1236#define _CODECS_RAW_UNICODE_ESCAPE_ENCODE_METHODDEF \
Serhiy Storchaka4a934d42018-11-27 11:27:36 +02001237 {"raw_unicode_escape_encode", (PyCFunction)(void(*)(void))_codecs_raw_unicode_escape_encode, METH_FASTCALL, _codecs_raw_unicode_escape_encode__doc__},
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +03001238
1239static PyObject *
Serhiy Storchaka1a2b24f2016-07-07 17:35:15 +03001240_codecs_raw_unicode_escape_encode_impl(PyObject *module, PyObject *str,
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +03001241 const char *errors);
1242
1243static PyObject *
Serhiy Storchakaa5552f02017-12-15 13:11:11 +02001244_codecs_raw_unicode_escape_encode(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +03001245{
1246 PyObject *return_value = NULL;
1247 PyObject *str;
1248 const char *errors = NULL;
1249
Sylvain74453812017-06-10 06:51:48 +02001250 if (!_PyArg_ParseStack(args, nargs, "U|z:raw_unicode_escape_encode",
1251 &str, &errors)) {
Victor Stinner259f0e42017-01-17 01:35:17 +01001252 goto exit;
1253 }
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +03001254 return_value = _codecs_raw_unicode_escape_encode_impl(module, str, errors);
1255
1256exit:
1257 return return_value;
1258}
1259
1260PyDoc_STRVAR(_codecs_latin_1_encode__doc__,
1261"latin_1_encode($module, str, errors=None, /)\n"
1262"--\n"
1263"\n");
1264
1265#define _CODECS_LATIN_1_ENCODE_METHODDEF \
Serhiy Storchaka4a934d42018-11-27 11:27:36 +02001266 {"latin_1_encode", (PyCFunction)(void(*)(void))_codecs_latin_1_encode, METH_FASTCALL, _codecs_latin_1_encode__doc__},
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +03001267
1268static PyObject *
Serhiy Storchaka1a2b24f2016-07-07 17:35:15 +03001269_codecs_latin_1_encode_impl(PyObject *module, PyObject *str,
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +03001270 const char *errors);
1271
1272static PyObject *
Serhiy Storchakaa5552f02017-12-15 13:11:11 +02001273_codecs_latin_1_encode(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +03001274{
1275 PyObject *return_value = NULL;
1276 PyObject *str;
1277 const char *errors = NULL;
1278
Sylvain74453812017-06-10 06:51:48 +02001279 if (!_PyArg_ParseStack(args, nargs, "U|z:latin_1_encode",
1280 &str, &errors)) {
Victor Stinner259f0e42017-01-17 01:35:17 +01001281 goto exit;
1282 }
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +03001283 return_value = _codecs_latin_1_encode_impl(module, str, errors);
1284
1285exit:
1286 return return_value;
1287}
1288
1289PyDoc_STRVAR(_codecs_ascii_encode__doc__,
1290"ascii_encode($module, str, errors=None, /)\n"
1291"--\n"
1292"\n");
1293
1294#define _CODECS_ASCII_ENCODE_METHODDEF \
Serhiy Storchaka4a934d42018-11-27 11:27:36 +02001295 {"ascii_encode", (PyCFunction)(void(*)(void))_codecs_ascii_encode, METH_FASTCALL, _codecs_ascii_encode__doc__},
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +03001296
1297static PyObject *
Serhiy Storchaka1a2b24f2016-07-07 17:35:15 +03001298_codecs_ascii_encode_impl(PyObject *module, PyObject *str,
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +03001299 const char *errors);
1300
1301static PyObject *
Serhiy Storchakaa5552f02017-12-15 13:11:11 +02001302_codecs_ascii_encode(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +03001303{
1304 PyObject *return_value = NULL;
1305 PyObject *str;
1306 const char *errors = NULL;
1307
Sylvain74453812017-06-10 06:51:48 +02001308 if (!_PyArg_ParseStack(args, nargs, "U|z:ascii_encode",
1309 &str, &errors)) {
Victor Stinner259f0e42017-01-17 01:35:17 +01001310 goto exit;
1311 }
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +03001312 return_value = _codecs_ascii_encode_impl(module, str, errors);
1313
1314exit:
1315 return return_value;
1316}
1317
1318PyDoc_STRVAR(_codecs_charmap_encode__doc__,
1319"charmap_encode($module, str, errors=None, mapping=None, /)\n"
1320"--\n"
1321"\n");
1322
1323#define _CODECS_CHARMAP_ENCODE_METHODDEF \
Serhiy Storchaka4a934d42018-11-27 11:27:36 +02001324 {"charmap_encode", (PyCFunction)(void(*)(void))_codecs_charmap_encode, METH_FASTCALL, _codecs_charmap_encode__doc__},
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +03001325
1326static PyObject *
Serhiy Storchaka1a2b24f2016-07-07 17:35:15 +03001327_codecs_charmap_encode_impl(PyObject *module, PyObject *str,
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +03001328 const char *errors, PyObject *mapping);
1329
1330static PyObject *
Serhiy Storchakaa5552f02017-12-15 13:11:11 +02001331_codecs_charmap_encode(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +03001332{
1333 PyObject *return_value = NULL;
1334 PyObject *str;
1335 const char *errors = NULL;
1336 PyObject *mapping = NULL;
1337
Sylvain74453812017-06-10 06:51:48 +02001338 if (!_PyArg_ParseStack(args, nargs, "U|zO:charmap_encode",
1339 &str, &errors, &mapping)) {
Victor Stinner259f0e42017-01-17 01:35:17 +01001340 goto exit;
1341 }
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +03001342 return_value = _codecs_charmap_encode_impl(module, str, errors, mapping);
1343
1344exit:
1345 return return_value;
1346}
1347
1348PyDoc_STRVAR(_codecs_charmap_build__doc__,
1349"charmap_build($module, map, /)\n"
1350"--\n"
1351"\n");
1352
1353#define _CODECS_CHARMAP_BUILD_METHODDEF \
1354 {"charmap_build", (PyCFunction)_codecs_charmap_build, METH_O, _codecs_charmap_build__doc__},
1355
1356static PyObject *
Serhiy Storchaka1a2b24f2016-07-07 17:35:15 +03001357_codecs_charmap_build_impl(PyObject *module, PyObject *map);
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +03001358
1359static PyObject *
Serhiy Storchaka1a2b24f2016-07-07 17:35:15 +03001360_codecs_charmap_build(PyObject *module, PyObject *arg)
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +03001361{
1362 PyObject *return_value = NULL;
1363 PyObject *map;
1364
Serhiy Storchaka32d96a22018-12-25 13:23:47 +02001365 if (!PyUnicode_Check(arg)) {
1366 _PyArg_BadArgument("charmap_build", "str", arg);
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +03001367 goto exit;
Serhiy Storchaka5dee6552016-06-09 16:16:06 +03001368 }
Serhiy Storchaka32d96a22018-12-25 13:23:47 +02001369 if (PyUnicode_READY(arg) == -1) {
1370 goto exit;
1371 }
1372 map = arg;
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +03001373 return_value = _codecs_charmap_build_impl(module, map);
1374
1375exit:
1376 return return_value;
1377}
1378
Steve Dowercc16be82016-09-08 10:35:16 -07001379#if defined(MS_WINDOWS)
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +03001380
1381PyDoc_STRVAR(_codecs_mbcs_encode__doc__,
1382"mbcs_encode($module, str, errors=None, /)\n"
1383"--\n"
1384"\n");
1385
1386#define _CODECS_MBCS_ENCODE_METHODDEF \
Serhiy Storchaka4a934d42018-11-27 11:27:36 +02001387 {"mbcs_encode", (PyCFunction)(void(*)(void))_codecs_mbcs_encode, METH_FASTCALL, _codecs_mbcs_encode__doc__},
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +03001388
1389static PyObject *
Serhiy Storchaka1a2b24f2016-07-07 17:35:15 +03001390_codecs_mbcs_encode_impl(PyObject *module, PyObject *str, const char *errors);
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +03001391
1392static PyObject *
Serhiy Storchakaa5552f02017-12-15 13:11:11 +02001393_codecs_mbcs_encode(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +03001394{
1395 PyObject *return_value = NULL;
1396 PyObject *str;
1397 const char *errors = NULL;
1398
Sylvain74453812017-06-10 06:51:48 +02001399 if (!_PyArg_ParseStack(args, nargs, "U|z:mbcs_encode",
1400 &str, &errors)) {
Victor Stinner259f0e42017-01-17 01:35:17 +01001401 goto exit;
1402 }
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +03001403 return_value = _codecs_mbcs_encode_impl(module, str, errors);
1404
1405exit:
1406 return return_value;
1407}
1408
Steve Dowercc16be82016-09-08 10:35:16 -07001409#endif /* defined(MS_WINDOWS) */
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +03001410
Steve Dowercc16be82016-09-08 10:35:16 -07001411#if defined(MS_WINDOWS)
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +03001412
Steve Dowerf5aba582016-09-06 19:42:27 -07001413PyDoc_STRVAR(_codecs_oem_encode__doc__,
1414"oem_encode($module, str, errors=None, /)\n"
1415"--\n"
1416"\n");
1417
1418#define _CODECS_OEM_ENCODE_METHODDEF \
Serhiy Storchaka4a934d42018-11-27 11:27:36 +02001419 {"oem_encode", (PyCFunction)(void(*)(void))_codecs_oem_encode, METH_FASTCALL, _codecs_oem_encode__doc__},
Steve Dowerf5aba582016-09-06 19:42:27 -07001420
1421static PyObject *
1422_codecs_oem_encode_impl(PyObject *module, PyObject *str, const char *errors);
1423
1424static PyObject *
Serhiy Storchakaa5552f02017-12-15 13:11:11 +02001425_codecs_oem_encode(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
Steve Dowerf5aba582016-09-06 19:42:27 -07001426{
1427 PyObject *return_value = NULL;
1428 PyObject *str;
1429 const char *errors = NULL;
1430
Sylvain74453812017-06-10 06:51:48 +02001431 if (!_PyArg_ParseStack(args, nargs, "U|z:oem_encode",
1432 &str, &errors)) {
Victor Stinner259f0e42017-01-17 01:35:17 +01001433 goto exit;
1434 }
Steve Dowerf5aba582016-09-06 19:42:27 -07001435 return_value = _codecs_oem_encode_impl(module, str, errors);
1436
1437exit:
1438 return return_value;
1439}
1440
Steve Dowercc16be82016-09-08 10:35:16 -07001441#endif /* defined(MS_WINDOWS) */
Steve Dowerf5aba582016-09-06 19:42:27 -07001442
Steve Dowercc16be82016-09-08 10:35:16 -07001443#if defined(MS_WINDOWS)
Steve Dowerf5aba582016-09-06 19:42:27 -07001444
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +03001445PyDoc_STRVAR(_codecs_code_page_encode__doc__,
1446"code_page_encode($module, code_page, str, errors=None, /)\n"
1447"--\n"
1448"\n");
1449
1450#define _CODECS_CODE_PAGE_ENCODE_METHODDEF \
Serhiy Storchaka4a934d42018-11-27 11:27:36 +02001451 {"code_page_encode", (PyCFunction)(void(*)(void))_codecs_code_page_encode, METH_FASTCALL, _codecs_code_page_encode__doc__},
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +03001452
1453static PyObject *
Serhiy Storchaka1a2b24f2016-07-07 17:35:15 +03001454_codecs_code_page_encode_impl(PyObject *module, int code_page, PyObject *str,
1455 const char *errors);
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +03001456
1457static PyObject *
Serhiy Storchakaa5552f02017-12-15 13:11:11 +02001458_codecs_code_page_encode(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +03001459{
1460 PyObject *return_value = NULL;
1461 int code_page;
1462 PyObject *str;
1463 const char *errors = NULL;
1464
Sylvain74453812017-06-10 06:51:48 +02001465 if (!_PyArg_ParseStack(args, nargs, "iU|z:code_page_encode",
1466 &code_page, &str, &errors)) {
Victor Stinner259f0e42017-01-17 01:35:17 +01001467 goto exit;
1468 }
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +03001469 return_value = _codecs_code_page_encode_impl(module, code_page, str, errors);
1470
1471exit:
1472 return return_value;
1473}
1474
Steve Dowercc16be82016-09-08 10:35:16 -07001475#endif /* defined(MS_WINDOWS) */
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +03001476
1477PyDoc_STRVAR(_codecs_register_error__doc__,
1478"register_error($module, errors, handler, /)\n"
1479"--\n"
1480"\n"
1481"Register the specified error handler under the name errors.\n"
1482"\n"
1483"handler must be a callable object, that will be called with an exception\n"
1484"instance containing information about the location of the encoding/decoding\n"
1485"error and must return a (replacement, new position) tuple.");
1486
1487#define _CODECS_REGISTER_ERROR_METHODDEF \
Serhiy Storchaka4a934d42018-11-27 11:27:36 +02001488 {"register_error", (PyCFunction)(void(*)(void))_codecs_register_error, METH_FASTCALL, _codecs_register_error__doc__},
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +03001489
1490static PyObject *
Serhiy Storchaka1a2b24f2016-07-07 17:35:15 +03001491_codecs_register_error_impl(PyObject *module, const char *errors,
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +03001492 PyObject *handler);
1493
1494static PyObject *
Serhiy Storchakaa5552f02017-12-15 13:11:11 +02001495_codecs_register_error(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +03001496{
1497 PyObject *return_value = NULL;
1498 const char *errors;
1499 PyObject *handler;
1500
Sylvain74453812017-06-10 06:51:48 +02001501 if (!_PyArg_ParseStack(args, nargs, "sO:register_error",
1502 &errors, &handler)) {
Victor Stinner259f0e42017-01-17 01:35:17 +01001503 goto exit;
1504 }
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +03001505 return_value = _codecs_register_error_impl(module, errors, handler);
1506
1507exit:
1508 return return_value;
1509}
1510
1511PyDoc_STRVAR(_codecs_lookup_error__doc__,
1512"lookup_error($module, name, /)\n"
1513"--\n"
1514"\n"
1515"lookup_error(errors) -> handler\n"
1516"\n"
1517"Return the error handler for the specified error handling name or raise a\n"
1518"LookupError, if no handler exists under this name.");
1519
1520#define _CODECS_LOOKUP_ERROR_METHODDEF \
1521 {"lookup_error", (PyCFunction)_codecs_lookup_error, METH_O, _codecs_lookup_error__doc__},
1522
1523static PyObject *
Serhiy Storchaka1a2b24f2016-07-07 17:35:15 +03001524_codecs_lookup_error_impl(PyObject *module, const char *name);
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +03001525
1526static PyObject *
Serhiy Storchaka1a2b24f2016-07-07 17:35:15 +03001527_codecs_lookup_error(PyObject *module, PyObject *arg)
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +03001528{
1529 PyObject *return_value = NULL;
1530 const char *name;
1531
Serhiy Storchaka32d96a22018-12-25 13:23:47 +02001532 if (!PyUnicode_Check(arg)) {
1533 _PyArg_BadArgument("lookup_error", "str", arg);
1534 goto exit;
1535 }
1536 Py_ssize_t name_length;
1537 name = PyUnicode_AsUTF8AndSize(arg, &name_length);
1538 if (name == NULL) {
1539 goto exit;
1540 }
1541 if (strlen(name) != (size_t)name_length) {
1542 PyErr_SetString(PyExc_ValueError, "embedded null character");
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +03001543 goto exit;
Serhiy Storchaka5dee6552016-06-09 16:16:06 +03001544 }
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +03001545 return_value = _codecs_lookup_error_impl(module, name);
1546
1547exit:
1548 return return_value;
1549}
1550
1551#ifndef _CODECS_MBCS_DECODE_METHODDEF
1552 #define _CODECS_MBCS_DECODE_METHODDEF
1553#endif /* !defined(_CODECS_MBCS_DECODE_METHODDEF) */
1554
Steve Dowerf5aba582016-09-06 19:42:27 -07001555#ifndef _CODECS_OEM_DECODE_METHODDEF
1556 #define _CODECS_OEM_DECODE_METHODDEF
1557#endif /* !defined(_CODECS_OEM_DECODE_METHODDEF) */
1558
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +03001559#ifndef _CODECS_CODE_PAGE_DECODE_METHODDEF
1560 #define _CODECS_CODE_PAGE_DECODE_METHODDEF
1561#endif /* !defined(_CODECS_CODE_PAGE_DECODE_METHODDEF) */
1562
1563#ifndef _CODECS_MBCS_ENCODE_METHODDEF
1564 #define _CODECS_MBCS_ENCODE_METHODDEF
1565#endif /* !defined(_CODECS_MBCS_ENCODE_METHODDEF) */
1566
Steve Dowerf5aba582016-09-06 19:42:27 -07001567#ifndef _CODECS_OEM_ENCODE_METHODDEF
1568 #define _CODECS_OEM_ENCODE_METHODDEF
1569#endif /* !defined(_CODECS_OEM_ENCODE_METHODDEF) */
1570
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +03001571#ifndef _CODECS_CODE_PAGE_ENCODE_METHODDEF
1572 #define _CODECS_CODE_PAGE_ENCODE_METHODDEF
1573#endif /* !defined(_CODECS_CODE_PAGE_ENCODE_METHODDEF) */
Serhiy Storchaka32d96a22018-12-25 13:23:47 +02001574/*[clinic end generated code: output=c2d2b917b78a4c45 input=a9049054013a1b77]*/