blob: fb3e27fed1c80fb02a03e687e919a5c99aa439e5 [file] [log] [blame]
Serhiy Storchaka3ffd9132014-01-25 11:21:23 +02001/*[clinic input]
2preserve
3[clinic start generated code]*/
4
5PyDoc_STRVAR(binascii_a2b_uu__doc__,
6"a2b_uu(module, ascii)\n"
7"Decode a line of uuencoded data.");
8
9#define BINASCII_A2B_UU_METHODDEF \
10 {"a2b_uu", (PyCFunction)binascii_a2b_uu, METH_VARARGS, binascii_a2b_uu__doc__},
11
12static PyObject *
13binascii_a2b_uu_impl(PyModuleDef *module, Py_buffer *ascii);
14
15static PyObject *
16binascii_a2b_uu(PyModuleDef *module, PyObject *args)
17{
18 PyObject *return_value = NULL;
19 Py_buffer ascii;
20
21 if (!PyArg_ParseTuple(args,
22 "O&:a2b_uu",
23 ascii_buffer_converter, &ascii))
24 goto exit;
25 return_value = binascii_a2b_uu_impl(module, &ascii);
26
27exit:
28 return return_value;
29}
30
31PyDoc_STRVAR(binascii_b2a_uu__doc__,
32"b2a_uu(module, data)\n"
33"Uuencode line of data.");
34
35#define BINASCII_B2A_UU_METHODDEF \
36 {"b2a_uu", (PyCFunction)binascii_b2a_uu, METH_VARARGS, binascii_b2a_uu__doc__},
37
38static PyObject *
39binascii_b2a_uu_impl(PyModuleDef *module, Py_buffer *data);
40
41static PyObject *
42binascii_b2a_uu(PyModuleDef *module, PyObject *args)
43{
44 PyObject *return_value = NULL;
45 Py_buffer data = {NULL, NULL};
46
47 if (!PyArg_ParseTuple(args,
48 "y*:b2a_uu",
49 &data))
50 goto exit;
51 return_value = binascii_b2a_uu_impl(module, &data);
52
53exit:
54 /* Cleanup for data */
55 if (data.obj)
56 PyBuffer_Release(&data);
57
58 return return_value;
59}
60
61PyDoc_STRVAR(binascii_a2b_base64__doc__,
62"a2b_base64(module, ascii)\n"
63"Decode a line of base64 data.");
64
65#define BINASCII_A2B_BASE64_METHODDEF \
66 {"a2b_base64", (PyCFunction)binascii_a2b_base64, METH_VARARGS, binascii_a2b_base64__doc__},
67
68static PyObject *
69binascii_a2b_base64_impl(PyModuleDef *module, Py_buffer *ascii);
70
71static PyObject *
72binascii_a2b_base64(PyModuleDef *module, PyObject *args)
73{
74 PyObject *return_value = NULL;
75 Py_buffer ascii;
76
77 if (!PyArg_ParseTuple(args,
78 "O&:a2b_base64",
79 ascii_buffer_converter, &ascii))
80 goto exit;
81 return_value = binascii_a2b_base64_impl(module, &ascii);
82
83exit:
84 return return_value;
85}
86
87PyDoc_STRVAR(binascii_b2a_base64__doc__,
88"b2a_base64(module, data)\n"
89"Base64-code line of data.");
90
91#define BINASCII_B2A_BASE64_METHODDEF \
92 {"b2a_base64", (PyCFunction)binascii_b2a_base64, METH_VARARGS, binascii_b2a_base64__doc__},
93
94static PyObject *
95binascii_b2a_base64_impl(PyModuleDef *module, Py_buffer *data);
96
97static PyObject *
98binascii_b2a_base64(PyModuleDef *module, PyObject *args)
99{
100 PyObject *return_value = NULL;
101 Py_buffer data = {NULL, NULL};
102
103 if (!PyArg_ParseTuple(args,
104 "y*:b2a_base64",
105 &data))
106 goto exit;
107 return_value = binascii_b2a_base64_impl(module, &data);
108
109exit:
110 /* Cleanup for data */
111 if (data.obj)
112 PyBuffer_Release(&data);
113
114 return return_value;
115}
116
117PyDoc_STRVAR(binascii_a2b_hqx__doc__,
118"a2b_hqx(module, ascii)\n"
119"Decode .hqx coding.");
120
121#define BINASCII_A2B_HQX_METHODDEF \
122 {"a2b_hqx", (PyCFunction)binascii_a2b_hqx, METH_VARARGS, binascii_a2b_hqx__doc__},
123
124static PyObject *
125binascii_a2b_hqx_impl(PyModuleDef *module, Py_buffer *ascii);
126
127static PyObject *
128binascii_a2b_hqx(PyModuleDef *module, PyObject *args)
129{
130 PyObject *return_value = NULL;
131 Py_buffer ascii;
132
133 if (!PyArg_ParseTuple(args,
134 "O&:a2b_hqx",
135 ascii_buffer_converter, &ascii))
136 goto exit;
137 return_value = binascii_a2b_hqx_impl(module, &ascii);
138
139exit:
140 return return_value;
141}
142
143PyDoc_STRVAR(binascii_rlecode_hqx__doc__,
144"rlecode_hqx(module, data)\n"
145"Binhex RLE-code binary data.");
146
147#define BINASCII_RLECODE_HQX_METHODDEF \
148 {"rlecode_hqx", (PyCFunction)binascii_rlecode_hqx, METH_VARARGS, binascii_rlecode_hqx__doc__},
149
150static PyObject *
151binascii_rlecode_hqx_impl(PyModuleDef *module, Py_buffer *data);
152
153static PyObject *
154binascii_rlecode_hqx(PyModuleDef *module, PyObject *args)
155{
156 PyObject *return_value = NULL;
157 Py_buffer data = {NULL, NULL};
158
159 if (!PyArg_ParseTuple(args,
160 "y*:rlecode_hqx",
161 &data))
162 goto exit;
163 return_value = binascii_rlecode_hqx_impl(module, &data);
164
165exit:
166 /* Cleanup for data */
167 if (data.obj)
168 PyBuffer_Release(&data);
169
170 return return_value;
171}
172
173PyDoc_STRVAR(binascii_b2a_hqx__doc__,
174"b2a_hqx(module, data)\n"
175"Encode .hqx data.");
176
177#define BINASCII_B2A_HQX_METHODDEF \
178 {"b2a_hqx", (PyCFunction)binascii_b2a_hqx, METH_VARARGS, binascii_b2a_hqx__doc__},
179
180static PyObject *
181binascii_b2a_hqx_impl(PyModuleDef *module, Py_buffer *data);
182
183static PyObject *
184binascii_b2a_hqx(PyModuleDef *module, PyObject *args)
185{
186 PyObject *return_value = NULL;
187 Py_buffer data = {NULL, NULL};
188
189 if (!PyArg_ParseTuple(args,
190 "y*:b2a_hqx",
191 &data))
192 goto exit;
193 return_value = binascii_b2a_hqx_impl(module, &data);
194
195exit:
196 /* Cleanup for data */
197 if (data.obj)
198 PyBuffer_Release(&data);
199
200 return return_value;
201}
202
203PyDoc_STRVAR(binascii_rledecode_hqx__doc__,
204"rledecode_hqx(module, data)\n"
205"Decode hexbin RLE-coded string.");
206
207#define BINASCII_RLEDECODE_HQX_METHODDEF \
208 {"rledecode_hqx", (PyCFunction)binascii_rledecode_hqx, METH_VARARGS, binascii_rledecode_hqx__doc__},
209
210static PyObject *
211binascii_rledecode_hqx_impl(PyModuleDef *module, Py_buffer *data);
212
213static PyObject *
214binascii_rledecode_hqx(PyModuleDef *module, PyObject *args)
215{
216 PyObject *return_value = NULL;
217 Py_buffer data = {NULL, NULL};
218
219 if (!PyArg_ParseTuple(args,
220 "y*:rledecode_hqx",
221 &data))
222 goto exit;
223 return_value = binascii_rledecode_hqx_impl(module, &data);
224
225exit:
226 /* Cleanup for data */
227 if (data.obj)
228 PyBuffer_Release(&data);
229
230 return return_value;
231}
232
233PyDoc_STRVAR(binascii_crc_hqx__doc__,
234"crc_hqx(module, data, crc)\n"
235"Compute hqx CRC incrementally.");
236
237#define BINASCII_CRC_HQX_METHODDEF \
238 {"crc_hqx", (PyCFunction)binascii_crc_hqx, METH_VARARGS, binascii_crc_hqx__doc__},
239
240static int
241binascii_crc_hqx_impl(PyModuleDef *module, Py_buffer *data, int crc);
242
243static PyObject *
244binascii_crc_hqx(PyModuleDef *module, PyObject *args)
245{
246 PyObject *return_value = NULL;
247 Py_buffer data = {NULL, NULL};
248 int crc;
249 int _return_value;
250
251 if (!PyArg_ParseTuple(args,
252 "y*i:crc_hqx",
253 &data, &crc))
254 goto exit;
255 _return_value = binascii_crc_hqx_impl(module, &data, crc);
256 if ((_return_value == -1) && PyErr_Occurred())
257 goto exit;
258 return_value = PyLong_FromLong((long)_return_value);
259
260exit:
261 /* Cleanup for data */
262 if (data.obj)
263 PyBuffer_Release(&data);
264
265 return return_value;
266}
267
268PyDoc_STRVAR(binascii_crc32__doc__,
269"crc32(module, data, crc=0)\n"
270"Compute CRC-32 incrementally.");
271
272#define BINASCII_CRC32_METHODDEF \
273 {"crc32", (PyCFunction)binascii_crc32, METH_VARARGS, binascii_crc32__doc__},
274
275static unsigned int
276binascii_crc32_impl(PyModuleDef *module, Py_buffer *data, unsigned int crc);
277
278static PyObject *
279binascii_crc32(PyModuleDef *module, PyObject *args)
280{
281 PyObject *return_value = NULL;
282 Py_buffer data = {NULL, NULL};
283 unsigned int crc = 0;
284 unsigned int _return_value;
285
286 if (!PyArg_ParseTuple(args,
287 "y*|I:crc32",
288 &data, &crc))
289 goto exit;
290 _return_value = binascii_crc32_impl(module, &data, crc);
291 if ((_return_value == -1) && PyErr_Occurred())
292 goto exit;
293 return_value = PyLong_FromUnsignedLong((unsigned long)_return_value);
294
295exit:
296 /* Cleanup for data */
297 if (data.obj)
298 PyBuffer_Release(&data);
299
300 return return_value;
301}
302
303PyDoc_STRVAR(binascii_b2a_hex__doc__,
304"b2a_hex(module, data)\n"
305"Hexadecimal representation of binary data.\n"
306"\n"
307"The return value is a bytes object. This function is also\n"
308"available as \"hexlify()\".");
309
310#define BINASCII_B2A_HEX_METHODDEF \
311 {"b2a_hex", (PyCFunction)binascii_b2a_hex, METH_VARARGS, binascii_b2a_hex__doc__},
312
313static PyObject *
314binascii_b2a_hex_impl(PyModuleDef *module, Py_buffer *data);
315
316static PyObject *
317binascii_b2a_hex(PyModuleDef *module, PyObject *args)
318{
319 PyObject *return_value = NULL;
320 Py_buffer data = {NULL, NULL};
321
322 if (!PyArg_ParseTuple(args,
323 "y*:b2a_hex",
324 &data))
325 goto exit;
326 return_value = binascii_b2a_hex_impl(module, &data);
327
328exit:
329 /* Cleanup for data */
330 if (data.obj)
331 PyBuffer_Release(&data);
332
333 return return_value;
334}
335
336PyDoc_STRVAR(binascii_a2b_hex__doc__,
337"a2b_hex(module, hexstr)\n"
338"Binary data of hexadecimal representation.\n"
339"\n"
340"hexstr must contain an even number of hex digits (upper or lower case).\n"
341"This function is also available as \"unhexlify()\".");
342
343#define BINASCII_A2B_HEX_METHODDEF \
344 {"a2b_hex", (PyCFunction)binascii_a2b_hex, METH_VARARGS, binascii_a2b_hex__doc__},
345
346static PyObject *
347binascii_a2b_hex_impl(PyModuleDef *module, Py_buffer *hexstr);
348
349static PyObject *
350binascii_a2b_hex(PyModuleDef *module, PyObject *args)
351{
352 PyObject *return_value = NULL;
353 Py_buffer hexstr;
354
355 if (!PyArg_ParseTuple(args,
356 "O&:a2b_hex",
357 ascii_buffer_converter, &hexstr))
358 goto exit;
359 return_value = binascii_a2b_hex_impl(module, &hexstr);
360
361exit:
362 return return_value;
363}
364
365PyDoc_STRVAR(binascii_a2b_qp__doc__,
366"a2b_qp(module, ascii, header=False)\n"
367"Decode a string of qp-encoded data.");
368
369#define BINASCII_A2B_QP_METHODDEF \
370 {"a2b_qp", (PyCFunction)binascii_a2b_qp, METH_VARARGS, binascii_a2b_qp__doc__},
371
372static PyObject *
373binascii_a2b_qp_impl(PyModuleDef *module, Py_buffer *ascii, int header);
374
375static PyObject *
376binascii_a2b_qp(PyModuleDef *module, PyObject *args)
377{
378 PyObject *return_value = NULL;
379 Py_buffer ascii;
380 int header = 0;
381
382 if (!PyArg_ParseTuple(args,
383 "O&|i:a2b_qp",
384 ascii_buffer_converter, &ascii, &header))
385 goto exit;
386 return_value = binascii_a2b_qp_impl(module, &ascii, header);
387
388exit:
389 return return_value;
390}
391
392PyDoc_STRVAR(binascii_b2a_qp__doc__,
393"b2a_qp(module, data, quotetabs=False, istext=True, header=False)\n"
394"Encode a string using quoted-printable encoding.\n"
395"\n"
396"On encoding, when istext is set, newlines are not encoded, and white\n"
397"space at end of lines is. When istext is not set, \\r and \\n (CR/LF)\n"
398"are both encoded. When quotetabs is set, space and tabs are encoded.");
399
400#define BINASCII_B2A_QP_METHODDEF \
401 {"b2a_qp", (PyCFunction)binascii_b2a_qp, METH_VARARGS|METH_KEYWORDS, binascii_b2a_qp__doc__},
402
403static PyObject *
404binascii_b2a_qp_impl(PyModuleDef *module, Py_buffer *data, int quotetabs, int istext, int header);
405
406static PyObject *
407binascii_b2a_qp(PyModuleDef *module, PyObject *args, PyObject *kwargs)
408{
409 PyObject *return_value = NULL;
410 static char *_keywords[] = {"data", "quotetabs", "istext", "header", NULL};
411 Py_buffer data = {NULL, NULL};
412 int quotetabs = 0;
413 int istext = 1;
414 int header = 0;
415
416 if (!PyArg_ParseTupleAndKeywords(args, kwargs,
417 "y*|iii:b2a_qp", _keywords,
418 &data, &quotetabs, &istext, &header))
419 goto exit;
420 return_value = binascii_b2a_qp_impl(module, &data, quotetabs, istext, header);
421
422exit:
423 /* Cleanup for data */
424 if (data.obj)
425 PyBuffer_Release(&data);
426
427 return return_value;
428}
429/*[clinic end generated code: checksum=bd769a1cd1169bfa0b73a0ee3081b0748fc39e2c]*/