Ignore:
Timestamp:
Mar 19, 2014, 11:31:01 PM (11 years ago)
Author:
dmik
Message:

python: Merge vendor 2.7.6 to trunk.

Location:
python/trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • python/trunk

  • python/trunk/Modules/cjkcodecs/multibytecodec.h

    r2 r391  
    2424
    2525typedef union {
    26         void *p;
    27         int i;
    28         unsigned char c[8];
    29         ucs2_t u2[4];
    30         ucs4_t u4[2];
     26    void *p;
     27    int i;
     28    unsigned char c[8];
     29    ucs2_t u2[4];
     30    ucs4_t u4[2];
    3131} MultibyteCodec_State;
    3232
    3333typedef int (*mbcodec_init)(const void *config);
    3434typedef Py_ssize_t (*mbencode_func)(MultibyteCodec_State *state,
    35                         const void *config,
    36                         const Py_UNICODE **inbuf, Py_ssize_t inleft,
    37                         unsigned char **outbuf, Py_ssize_t outleft,
    38                         int flags);
     35                        const void *config,
     36                        const Py_UNICODE **inbuf, Py_ssize_t inleft,
     37                        unsigned char **outbuf, Py_ssize_t outleft,
     38                        int flags);
    3939typedef int (*mbencodeinit_func)(MultibyteCodec_State *state,
    40                                 const void *config);
     40                                const void *config);
    4141typedef Py_ssize_t (*mbencodereset_func)(MultibyteCodec_State *state,
    42                         const void *config,
    43                         unsigned char **outbuf, Py_ssize_t outleft);
     42                        const void *config,
     43                        unsigned char **outbuf, Py_ssize_t outleft);
    4444typedef Py_ssize_t (*mbdecode_func)(MultibyteCodec_State *state,
    45                         const void *config,
    46                         const unsigned char **inbuf, Py_ssize_t inleft,
    47                         Py_UNICODE **outbuf, Py_ssize_t outleft);
     45                        const void *config,
     46                        const unsigned char **inbuf, Py_ssize_t inleft,
     47                        Py_UNICODE **outbuf, Py_ssize_t outleft);
    4848typedef int (*mbdecodeinit_func)(MultibyteCodec_State *state,
    49                                 const void *config);
     49                                const void *config);
    5050typedef Py_ssize_t (*mbdecodereset_func)(MultibyteCodec_State *state,
    51                                         const void *config);
     51                                        const void *config);
    5252
    5353typedef struct {
    54         const char *encoding;
    55         const void *config;
    56         mbcodec_init codecinit;
    57         mbencode_func encode;
    58         mbencodeinit_func encinit;
    59         mbencodereset_func encreset;
    60         mbdecode_func decode;
    61         mbdecodeinit_func decinit;
    62         mbdecodereset_func decreset;
     54    const char *encoding;
     55    const void *config;
     56    mbcodec_init codecinit;
     57    mbencode_func encode;
     58    mbencodeinit_func encinit;
     59    mbencodereset_func encreset;
     60    mbdecode_func decode;
     61    mbdecodeinit_func decinit;
     62    mbdecodereset_func decreset;
    6363} MultibyteCodec;
    6464
    6565typedef struct {
    66         PyObject_HEAD
    67         MultibyteCodec *codec;
     66    PyObject_HEAD
     67    MultibyteCodec *codec;
    6868} MultibyteCodecObject;
    6969
    7070#define MultibyteCodec_Check(op) ((op)->ob_type == &MultibyteCodec_Type)
    7171
    72 #define _MultibyteStatefulCodec_HEAD            \
    73         PyObject_HEAD                           \
    74         MultibyteCodec *codec;                  \
    75         MultibyteCodec_State state;             \
    76         PyObject *errors;
     72#define _MultibyteStatefulCodec_HEAD            \
     73    PyObject_HEAD                               \
     74    MultibyteCodec *codec;                      \
     75    MultibyteCodec_State state;                 \
     76    PyObject *errors;
    7777typedef struct {
    78         _MultibyteStatefulCodec_HEAD
     78    _MultibyteStatefulCodec_HEAD
    7979} MultibyteStatefulCodecContext;
    8080
    81 #define MAXENCPENDING   2
    82 #define _MultibyteStatefulEncoder_HEAD          \
    83         _MultibyteStatefulCodec_HEAD            \
    84         Py_UNICODE pending[MAXENCPENDING];      \
    85         Py_ssize_t pendingsize;
     81#define MAXENCPENDING   2
     82#define _MultibyteStatefulEncoder_HEAD          \
     83    _MultibyteStatefulCodec_HEAD                \
     84    Py_UNICODE pending[MAXENCPENDING];          \
     85    Py_ssize_t pendingsize;
    8686typedef struct {
    87         _MultibyteStatefulEncoder_HEAD
     87    _MultibyteStatefulEncoder_HEAD
    8888} MultibyteStatefulEncoderContext;
    8989
    90 #define MAXDECPENDING   8
    91 #define _MultibyteStatefulDecoder_HEAD          \
    92         _MultibyteStatefulCodec_HEAD            \
    93         unsigned char pending[MAXDECPENDING];   \
    94         Py_ssize_t pendingsize;
     90#define MAXDECPENDING   8
     91#define _MultibyteStatefulDecoder_HEAD          \
     92    _MultibyteStatefulCodec_HEAD                \
     93    unsigned char pending[MAXDECPENDING];       \
     94    Py_ssize_t pendingsize;
    9595typedef struct {
    96         _MultibyteStatefulDecoder_HEAD
     96    _MultibyteStatefulDecoder_HEAD
    9797} MultibyteStatefulDecoderContext;
    9898
    9999typedef struct {
    100         _MultibyteStatefulEncoder_HEAD
     100    _MultibyteStatefulEncoder_HEAD
    101101} MultibyteIncrementalEncoderObject;
    102102
    103103typedef struct {
    104         _MultibyteStatefulDecoder_HEAD
     104    _MultibyteStatefulDecoder_HEAD
    105105} MultibyteIncrementalDecoderObject;
    106106
    107107typedef struct {
    108         _MultibyteStatefulDecoder_HEAD
    109         PyObject *stream;
     108    _MultibyteStatefulDecoder_HEAD
     109    PyObject *stream;
    110110} MultibyteStreamReaderObject;
    111111
    112112typedef struct {
    113         _MultibyteStatefulEncoder_HEAD
    114         PyObject *stream;
     113    _MultibyteStatefulEncoder_HEAD
     114    PyObject *stream;
    115115} MultibyteStreamWriterObject;
    116116
    117117/* positive values for illegal sequences */
    118 #define MBERR_TOOSMALL          (-1) /* insufficient output buffer space */
    119 #define MBERR_TOOFEW            (-2) /* incomplete input buffer */
    120 #define MBERR_INTERNAL          (-3) /* internal runtime error */
     118#define MBERR_TOOSMALL          (-1) /* insufficient output buffer space */
     119#define MBERR_TOOFEW            (-2) /* incomplete input buffer */
     120#define MBERR_INTERNAL          (-3) /* internal runtime error */
    121121
    122 #define ERROR_STRICT            (PyObject *)(1)
    123 #define ERROR_IGNORE            (PyObject *)(2)
    124 #define ERROR_REPLACE           (PyObject *)(3)
    125 #define ERROR_ISCUSTOM(p)       ((p) < ERROR_STRICT || ERROR_REPLACE < (p))
    126 #define ERROR_DECREF(p) do {                    \
    127         if (p != NULL && ERROR_ISCUSTOM(p)) {   \
    128                 Py_DECREF(p);                   \
    129         }                                       \
     122#define ERROR_STRICT            (PyObject *)(1)
     123#define ERROR_IGNORE            (PyObject *)(2)
     124#define ERROR_REPLACE           (PyObject *)(3)
     125#define ERROR_ISCUSTOM(p)       ((p) < ERROR_STRICT || ERROR_REPLACE < (p))
     126#define ERROR_DECREF(p) do {                    \
     127    if (p != NULL && ERROR_ISCUSTOM(p)) {       \
     128        Py_DECREF(p);                           \
     129    }                                           \
    130130} while (0);
    131131
    132 #define MBENC_FLUSH             0x0001 /* encode all characters encodable */
    133 #define MBENC_MAX               MBENC_FLUSH
     132#define MBENC_FLUSH             0x0001 /* encode all characters encodable */
     133#define MBENC_MAX               MBENC_FLUSH
     134
     135#define PyMultibyteCodec_CAPSULE_NAME "multibytecodec.__map_*"
     136
    134137
    135138#ifdef __cplusplus
Note: See TracChangeset for help on using the changeset viewer.