annotate Modules/cjkcodecs/multibytecodec.h @ 79675:c0a2294de787 2.7

Issue #16199: Backport 2to3 typo fix from 3.2.
author Chris Jerdonek <chris.jerdonek@gmail.com>
date Thu, 11 Oct 2012 16:15:46 -0700
parents b36cb4602e21
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
31386
887ce39f95f2 Add CJK codecs support as discussed on python-dev. (SF #873597)
Hye-Shik Chang <hyeshik@gmail.com>
parents:
diff changeset
1 /*
887ce39f95f2 Add CJK codecs support as discussed on python-dev. (SF #873597)
Hye-Shik Chang <hyeshik@gmail.com>
parents:
diff changeset
2 * multibytecodec.h: Common Multibyte Codec Implementation
887ce39f95f2 Add CJK codecs support as discussed on python-dev. (SF #873597)
Hye-Shik Chang <hyeshik@gmail.com>
parents:
diff changeset
3 *
887ce39f95f2 Add CJK codecs support as discussed on python-dev. (SF #873597)
Hye-Shik Chang <hyeshik@gmail.com>
parents:
diff changeset
4 * Written by Hye-Shik Chang <perky@FreeBSD.org>
887ce39f95f2 Add CJK codecs support as discussed on python-dev. (SF #873597)
Hye-Shik Chang <hyeshik@gmail.com>
parents:
diff changeset
5 */
887ce39f95f2 Add CJK codecs support as discussed on python-dev. (SF #873597)
Hye-Shik Chang <hyeshik@gmail.com>
parents:
diff changeset
6
887ce39f95f2 Add CJK codecs support as discussed on python-dev. (SF #873597)
Hye-Shik Chang <hyeshik@gmail.com>
parents:
diff changeset
7 #ifndef _PYTHON_MULTIBYTECODEC_H_
887ce39f95f2 Add CJK codecs support as discussed on python-dev. (SF #873597)
Hye-Shik Chang <hyeshik@gmail.com>
parents:
diff changeset
8 #define _PYTHON_MULTIBYTECODEC_H_
887ce39f95f2 Add CJK codecs support as discussed on python-dev. (SF #873597)
Hye-Shik Chang <hyeshik@gmail.com>
parents:
diff changeset
9 #ifdef __cplusplus
887ce39f95f2 Add CJK codecs support as discussed on python-dev. (SF #873597)
Hye-Shik Chang <hyeshik@gmail.com>
parents:
diff changeset
10 extern "C" {
887ce39f95f2 Add CJK codecs support as discussed on python-dev. (SF #873597)
Hye-Shik Chang <hyeshik@gmail.com>
parents:
diff changeset
11 #endif
887ce39f95f2 Add CJK codecs support as discussed on python-dev. (SF #873597)
Hye-Shik Chang <hyeshik@gmail.com>
parents:
diff changeset
12
32727
69dadc2ca14d Bring CJKCodecs 1.1 into trunk. This completely reorganizes source
Hye-Shik Chang <hyeshik@gmail.com>
parents: 31386
diff changeset
13 #ifdef uint32_t
69dadc2ca14d Bring CJKCodecs 1.1 into trunk. This completely reorganizes source
Hye-Shik Chang <hyeshik@gmail.com>
parents: 31386
diff changeset
14 typedef uint32_t ucs4_t;
69dadc2ca14d Bring CJKCodecs 1.1 into trunk. This completely reorganizes source
Hye-Shik Chang <hyeshik@gmail.com>
parents: 31386
diff changeset
15 #else
69dadc2ca14d Bring CJKCodecs 1.1 into trunk. This completely reorganizes source
Hye-Shik Chang <hyeshik@gmail.com>
parents: 31386
diff changeset
16 typedef unsigned int ucs4_t;
69dadc2ca14d Bring CJKCodecs 1.1 into trunk. This completely reorganizes source
Hye-Shik Chang <hyeshik@gmail.com>
parents: 31386
diff changeset
17 #endif
69dadc2ca14d Bring CJKCodecs 1.1 into trunk. This completely reorganizes source
Hye-Shik Chang <hyeshik@gmail.com>
parents: 31386
diff changeset
18
69dadc2ca14d Bring CJKCodecs 1.1 into trunk. This completely reorganizes source
Hye-Shik Chang <hyeshik@gmail.com>
parents: 31386
diff changeset
19 #ifdef uint16_t
69dadc2ca14d Bring CJKCodecs 1.1 into trunk. This completely reorganizes source
Hye-Shik Chang <hyeshik@gmail.com>
parents: 31386
diff changeset
20 typedef uint16_t ucs2_t, DBCHAR;
69dadc2ca14d Bring CJKCodecs 1.1 into trunk. This completely reorganizes source
Hye-Shik Chang <hyeshik@gmail.com>
parents: 31386
diff changeset
21 #else
69dadc2ca14d Bring CJKCodecs 1.1 into trunk. This completely reorganizes source
Hye-Shik Chang <hyeshik@gmail.com>
parents: 31386
diff changeset
22 typedef unsigned short ucs2_t, DBCHAR;
69dadc2ca14d Bring CJKCodecs 1.1 into trunk. This completely reorganizes source
Hye-Shik Chang <hyeshik@gmail.com>
parents: 31386
diff changeset
23 #endif
31386
887ce39f95f2 Add CJK codecs support as discussed on python-dev. (SF #873597)
Hye-Shik Chang <hyeshik@gmail.com>
parents:
diff changeset
24
887ce39f95f2 Add CJK codecs support as discussed on python-dev. (SF #873597)
Hye-Shik Chang <hyeshik@gmail.com>
parents:
diff changeset
25 typedef union {
61465
e38335d4df91 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 37233
diff changeset
26 void *p;
e38335d4df91 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 37233
diff changeset
27 int i;
e38335d4df91 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 37233
diff changeset
28 unsigned char c[8];
e38335d4df91 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 37233
diff changeset
29 ucs2_t u2[4];
e38335d4df91 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 37233
diff changeset
30 ucs4_t u4[2];
31386
887ce39f95f2 Add CJK codecs support as discussed on python-dev. (SF #873597)
Hye-Shik Chang <hyeshik@gmail.com>
parents:
diff changeset
31 } MultibyteCodec_State;
887ce39f95f2 Add CJK codecs support as discussed on python-dev. (SF #873597)
Hye-Shik Chang <hyeshik@gmail.com>
parents:
diff changeset
32
32727
69dadc2ca14d Bring CJKCodecs 1.1 into trunk. This completely reorganizes source
Hye-Shik Chang <hyeshik@gmail.com>
parents: 31386
diff changeset
33 typedef int (*mbcodec_init)(const void *config);
36831
bac6bd343a12 - Modernize code to use Py_ssize_t more intensively.
Hye-Shik Chang <hyeshik@gmail.com>
parents: 32727
diff changeset
34 typedef Py_ssize_t (*mbencode_func)(MultibyteCodec_State *state,
61465
e38335d4df91 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 37233
diff changeset
35 const void *config,
e38335d4df91 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 37233
diff changeset
36 const Py_UNICODE **inbuf, Py_ssize_t inleft,
e38335d4df91 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 37233
diff changeset
37 unsigned char **outbuf, Py_ssize_t outleft,
e38335d4df91 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 37233
diff changeset
38 int flags);
32727
69dadc2ca14d Bring CJKCodecs 1.1 into trunk. This completely reorganizes source
Hye-Shik Chang <hyeshik@gmail.com>
parents: 31386
diff changeset
39 typedef int (*mbencodeinit_func)(MultibyteCodec_State *state,
61465
e38335d4df91 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 37233
diff changeset
40 const void *config);
36831
bac6bd343a12 - Modernize code to use Py_ssize_t more intensively.
Hye-Shik Chang <hyeshik@gmail.com>
parents: 32727
diff changeset
41 typedef Py_ssize_t (*mbencodereset_func)(MultibyteCodec_State *state,
61465
e38335d4df91 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 37233
diff changeset
42 const void *config,
e38335d4df91 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 37233
diff changeset
43 unsigned char **outbuf, Py_ssize_t outleft);
36831
bac6bd343a12 - Modernize code to use Py_ssize_t more intensively.
Hye-Shik Chang <hyeshik@gmail.com>
parents: 32727
diff changeset
44 typedef Py_ssize_t (*mbdecode_func)(MultibyteCodec_State *state,
61465
e38335d4df91 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 37233
diff changeset
45 const void *config,
e38335d4df91 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 37233
diff changeset
46 const unsigned char **inbuf, Py_ssize_t inleft,
e38335d4df91 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 37233
diff changeset
47 Py_UNICODE **outbuf, Py_ssize_t outleft);
32727
69dadc2ca14d Bring CJKCodecs 1.1 into trunk. This completely reorganizes source
Hye-Shik Chang <hyeshik@gmail.com>
parents: 31386
diff changeset
48 typedef int (*mbdecodeinit_func)(MultibyteCodec_State *state,
61465
e38335d4df91 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 37233
diff changeset
49 const void *config);
36831
bac6bd343a12 - Modernize code to use Py_ssize_t more intensively.
Hye-Shik Chang <hyeshik@gmail.com>
parents: 32727
diff changeset
50 typedef Py_ssize_t (*mbdecodereset_func)(MultibyteCodec_State *state,
61465
e38335d4df91 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 37233
diff changeset
51 const void *config);
31386
887ce39f95f2 Add CJK codecs support as discussed on python-dev. (SF #873597)
Hye-Shik Chang <hyeshik@gmail.com>
parents:
diff changeset
52
887ce39f95f2 Add CJK codecs support as discussed on python-dev. (SF #873597)
Hye-Shik Chang <hyeshik@gmail.com>
parents:
diff changeset
53 typedef struct {
61465
e38335d4df91 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 37233
diff changeset
54 const char *encoding;
e38335d4df91 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 37233
diff changeset
55 const void *config;
e38335d4df91 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 37233
diff changeset
56 mbcodec_init codecinit;
e38335d4df91 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 37233
diff changeset
57 mbencode_func encode;
e38335d4df91 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 37233
diff changeset
58 mbencodeinit_func encinit;
e38335d4df91 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 37233
diff changeset
59 mbencodereset_func encreset;
e38335d4df91 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 37233
diff changeset
60 mbdecode_func decode;
e38335d4df91 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 37233
diff changeset
61 mbdecodeinit_func decinit;
e38335d4df91 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 37233
diff changeset
62 mbdecodereset_func decreset;
31386
887ce39f95f2 Add CJK codecs support as discussed on python-dev. (SF #873597)
Hye-Shik Chang <hyeshik@gmail.com>
parents:
diff changeset
63 } MultibyteCodec;
887ce39f95f2 Add CJK codecs support as discussed on python-dev. (SF #873597)
Hye-Shik Chang <hyeshik@gmail.com>
parents:
diff changeset
64
887ce39f95f2 Add CJK codecs support as discussed on python-dev. (SF #873597)
Hye-Shik Chang <hyeshik@gmail.com>
parents:
diff changeset
65 typedef struct {
61465
e38335d4df91 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 37233
diff changeset
66 PyObject_HEAD
e38335d4df91 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 37233
diff changeset
67 MultibyteCodec *codec;
31386
887ce39f95f2 Add CJK codecs support as discussed on python-dev. (SF #873597)
Hye-Shik Chang <hyeshik@gmail.com>
parents:
diff changeset
68 } MultibyteCodecObject;
887ce39f95f2 Add CJK codecs support as discussed on python-dev. (SF #873597)
Hye-Shik Chang <hyeshik@gmail.com>
parents:
diff changeset
69
37218
e234ff8beaa2 Patch #1443155: Add the incremental codecs support for CJK codecs.
Hye-Shik Chang <hyeshik@gmail.com>
parents: 36831
diff changeset
70 #define MultibyteCodec_Check(op) ((op)->ob_type == &MultibyteCodec_Type)
e234ff8beaa2 Patch #1443155: Add the incremental codecs support for CJK codecs.
Hye-Shik Chang <hyeshik@gmail.com>
parents: 36831
diff changeset
71
61465
e38335d4df91 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 37233
diff changeset
72 #define _MultibyteStatefulCodec_HEAD \
e38335d4df91 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 37233
diff changeset
73 PyObject_HEAD \
e38335d4df91 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 37233
diff changeset
74 MultibyteCodec *codec; \
e38335d4df91 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 37233
diff changeset
75 MultibyteCodec_State state; \
e38335d4df91 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 37233
diff changeset
76 PyObject *errors;
37218
e234ff8beaa2 Patch #1443155: Add the incremental codecs support for CJK codecs.
Hye-Shik Chang <hyeshik@gmail.com>
parents: 36831
diff changeset
77 typedef struct {
61465
e38335d4df91 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 37233
diff changeset
78 _MultibyteStatefulCodec_HEAD
37218
e234ff8beaa2 Patch #1443155: Add the incremental codecs support for CJK codecs.
Hye-Shik Chang <hyeshik@gmail.com>
parents: 36831
diff changeset
79 } MultibyteStatefulCodecContext;
e234ff8beaa2 Patch #1443155: Add the incremental codecs support for CJK codecs.
Hye-Shik Chang <hyeshik@gmail.com>
parents: 36831
diff changeset
80
61465
e38335d4df91 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 37233
diff changeset
81 #define MAXENCPENDING 2
e38335d4df91 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 37233
diff changeset
82 #define _MultibyteStatefulEncoder_HEAD \
e38335d4df91 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 37233
diff changeset
83 _MultibyteStatefulCodec_HEAD \
e38335d4df91 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 37233
diff changeset
84 Py_UNICODE pending[MAXENCPENDING]; \
e38335d4df91 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 37233
diff changeset
85 Py_ssize_t pendingsize;
31386
887ce39f95f2 Add CJK codecs support as discussed on python-dev. (SF #873597)
Hye-Shik Chang <hyeshik@gmail.com>
parents:
diff changeset
86 typedef struct {
61465
e38335d4df91 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 37233
diff changeset
87 _MultibyteStatefulEncoder_HEAD
37218
e234ff8beaa2 Patch #1443155: Add the incremental codecs support for CJK codecs.
Hye-Shik Chang <hyeshik@gmail.com>
parents: 36831
diff changeset
88 } MultibyteStatefulEncoderContext;
e234ff8beaa2 Patch #1443155: Add the incremental codecs support for CJK codecs.
Hye-Shik Chang <hyeshik@gmail.com>
parents: 36831
diff changeset
89
61465
e38335d4df91 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 37233
diff changeset
90 #define MAXDECPENDING 8
e38335d4df91 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 37233
diff changeset
91 #define _MultibyteStatefulDecoder_HEAD \
e38335d4df91 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 37233
diff changeset
92 _MultibyteStatefulCodec_HEAD \
e38335d4df91 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 37233
diff changeset
93 unsigned char pending[MAXDECPENDING]; \
e38335d4df91 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 37233
diff changeset
94 Py_ssize_t pendingsize;
37218
e234ff8beaa2 Patch #1443155: Add the incremental codecs support for CJK codecs.
Hye-Shik Chang <hyeshik@gmail.com>
parents: 36831
diff changeset
95 typedef struct {
61465
e38335d4df91 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 37233
diff changeset
96 _MultibyteStatefulDecoder_HEAD
37218
e234ff8beaa2 Patch #1443155: Add the incremental codecs support for CJK codecs.
Hye-Shik Chang <hyeshik@gmail.com>
parents: 36831
diff changeset
97 } MultibyteStatefulDecoderContext;
e234ff8beaa2 Patch #1443155: Add the incremental codecs support for CJK codecs.
Hye-Shik Chang <hyeshik@gmail.com>
parents: 36831
diff changeset
98
e234ff8beaa2 Patch #1443155: Add the incremental codecs support for CJK codecs.
Hye-Shik Chang <hyeshik@gmail.com>
parents: 36831
diff changeset
99 typedef struct {
61465
e38335d4df91 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 37233
diff changeset
100 _MultibyteStatefulEncoder_HEAD
37218
e234ff8beaa2 Patch #1443155: Add the incremental codecs support for CJK codecs.
Hye-Shik Chang <hyeshik@gmail.com>
parents: 36831
diff changeset
101 } MultibyteIncrementalEncoderObject;
e234ff8beaa2 Patch #1443155: Add the incremental codecs support for CJK codecs.
Hye-Shik Chang <hyeshik@gmail.com>
parents: 36831
diff changeset
102
e234ff8beaa2 Patch #1443155: Add the incremental codecs support for CJK codecs.
Hye-Shik Chang <hyeshik@gmail.com>
parents: 36831
diff changeset
103 typedef struct {
61465
e38335d4df91 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 37233
diff changeset
104 _MultibyteStatefulDecoder_HEAD
37218
e234ff8beaa2 Patch #1443155: Add the incremental codecs support for CJK codecs.
Hye-Shik Chang <hyeshik@gmail.com>
parents: 36831
diff changeset
105 } MultibyteIncrementalDecoderObject;
e234ff8beaa2 Patch #1443155: Add the incremental codecs support for CJK codecs.
Hye-Shik Chang <hyeshik@gmail.com>
parents: 36831
diff changeset
106
e234ff8beaa2 Patch #1443155: Add the incremental codecs support for CJK codecs.
Hye-Shik Chang <hyeshik@gmail.com>
parents: 36831
diff changeset
107 typedef struct {
61465
e38335d4df91 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 37233
diff changeset
108 _MultibyteStatefulDecoder_HEAD
e38335d4df91 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 37233
diff changeset
109 PyObject *stream;
31386
887ce39f95f2 Add CJK codecs support as discussed on python-dev. (SF #873597)
Hye-Shik Chang <hyeshik@gmail.com>
parents:
diff changeset
110 } MultibyteStreamReaderObject;
887ce39f95f2 Add CJK codecs support as discussed on python-dev. (SF #873597)
Hye-Shik Chang <hyeshik@gmail.com>
parents:
diff changeset
111
887ce39f95f2 Add CJK codecs support as discussed on python-dev. (SF #873597)
Hye-Shik Chang <hyeshik@gmail.com>
parents:
diff changeset
112 typedef struct {
61465
e38335d4df91 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 37233
diff changeset
113 _MultibyteStatefulEncoder_HEAD
e38335d4df91 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 37233
diff changeset
114 PyObject *stream;
31386
887ce39f95f2 Add CJK codecs support as discussed on python-dev. (SF #873597)
Hye-Shik Chang <hyeshik@gmail.com>
parents:
diff changeset
115 } MultibyteStreamWriterObject;
887ce39f95f2 Add CJK codecs support as discussed on python-dev. (SF #873597)
Hye-Shik Chang <hyeshik@gmail.com>
parents:
diff changeset
116
887ce39f95f2 Add CJK codecs support as discussed on python-dev. (SF #873597)
Hye-Shik Chang <hyeshik@gmail.com>
parents:
diff changeset
117 /* positive values for illegal sequences */
61465
e38335d4df91 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 37233
diff changeset
118 #define MBERR_TOOSMALL (-1) /* insufficient output buffer space */
e38335d4df91 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 37233
diff changeset
119 #define MBERR_TOOFEW (-2) /* incomplete input buffer */
e38335d4df91 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 37233
diff changeset
120 #define MBERR_INTERNAL (-3) /* internal runtime error */
31386
887ce39f95f2 Add CJK codecs support as discussed on python-dev. (SF #873597)
Hye-Shik Chang <hyeshik@gmail.com>
parents:
diff changeset
121
61465
e38335d4df91 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 37233
diff changeset
122 #define ERROR_STRICT (PyObject *)(1)
e38335d4df91 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 37233
diff changeset
123 #define ERROR_IGNORE (PyObject *)(2)
e38335d4df91 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 37233
diff changeset
124 #define ERROR_REPLACE (PyObject *)(3)
e38335d4df91 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 37233
diff changeset
125 #define ERROR_ISCUSTOM(p) ((p) < ERROR_STRICT || ERROR_REPLACE < (p))
e38335d4df91 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 37233
diff changeset
126 #define ERROR_DECREF(p) do { \
e38335d4df91 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 37233
diff changeset
127 if (p != NULL && ERROR_ISCUSTOM(p)) { \
e38335d4df91 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 37233
diff changeset
128 Py_DECREF(p); \
e38335d4df91 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 37233
diff changeset
129 } \
37218
e234ff8beaa2 Patch #1443155: Add the incremental codecs support for CJK codecs.
Hye-Shik Chang <hyeshik@gmail.com>
parents: 36831
diff changeset
130 } while (0);
31386
887ce39f95f2 Add CJK codecs support as discussed on python-dev. (SF #873597)
Hye-Shik Chang <hyeshik@gmail.com>
parents:
diff changeset
131
61465
e38335d4df91 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 37233
diff changeset
132 #define MBENC_FLUSH 0x0001 /* encode all characters encodable */
e38335d4df91 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 37233
diff changeset
133 #define MBENC_MAX MBENC_FLUSH
31386
887ce39f95f2 Add CJK codecs support as discussed on python-dev. (SF #873597)
Hye-Shik Chang <hyeshik@gmail.com>
parents:
diff changeset
134
59998
d11fbc796499 Backported PyCapsule from 3.1, and converted most uses of
Larry Hastings <larry@hastings.org>
parents: 37233
diff changeset
135 #define PyMultibyteCodec_CAPSULE_NAME "multibytecodec.__map_*"
d11fbc796499 Backported PyCapsule from 3.1, and converted most uses of
Larry Hastings <larry@hastings.org>
parents: 37233
diff changeset
136
d11fbc796499 Backported PyCapsule from 3.1, and converted most uses of
Larry Hastings <larry@hastings.org>
parents: 37233
diff changeset
137
31386
887ce39f95f2 Add CJK codecs support as discussed on python-dev. (SF #873597)
Hye-Shik Chang <hyeshik@gmail.com>
parents:
diff changeset
138 #ifdef __cplusplus
887ce39f95f2 Add CJK codecs support as discussed on python-dev. (SF #873597)
Hye-Shik Chang <hyeshik@gmail.com>
parents:
diff changeset
139 }
887ce39f95f2 Add CJK codecs support as discussed on python-dev. (SF #873597)
Hye-Shik Chang <hyeshik@gmail.com>
parents:
diff changeset
140 #endif
887ce39f95f2 Add CJK codecs support as discussed on python-dev. (SF #873597)
Hye-Shik Chang <hyeshik@gmail.com>
parents:
diff changeset
141 #endif