/* * cjkcommon.h: Common Constants and Macroes for CJK Character Sets * * Written by Hye-Shik Chang * $CJKCodecs: cjkcommon.h,v 1.2 2003/12/31 05:46:55 perky Exp $ */ #ifndef _CJKCOMMON_H_ #define _CJKCOMMON_H_ #ifdef uint32_t typedef uint32_t ucs4_t; #else typedef unsigned int ucs4_t; #endif #ifdef uint16_t typedef uint16_t ucs2_t, DBCHAR; #else typedef unsigned short ucs2_t, DBCHAR; #endif #define UNIINV Py_UNICODE_REPLACEMENT_CHARACTER #define NOCHAR 0xFFFF #define MULTIC 0xFFFE #define DBCINV 0xFFFD struct dbcs_index { const ucs2_t *map; unsigned char bottom, top; }; typedef struct dbcs_index decode_map; struct widedbcs_index { const ucs4_t *map; unsigned char bottom, top; }; typedef struct widedbcs_index widedecode_map; struct unim_index { const DBCHAR *map; unsigned char bottom, top; }; typedef struct unim_index encode_map; struct dbcs_map { const char *charset; const struct unim_index *encmap; const struct dbcs_index *decmap; }; struct pair_encodemap { ucs4_t uniseq; DBCHAR code; }; #endif