+typedef short Charset_ID;
+
+#define MIN_LEADING_BYTE -0x100
+#define CHARSET_ID_OFFSET 0x00
+
+/* ISO/IEC 10646 */
+#define LEADING_BYTE_UCS (CHARSET_ID_OFFSET - 1)
+
+/* represent normal 80-9F */
+#define LEADING_BYTE_CONTROL_1 (CHARSET_ID_OFFSET - 2)
+
+/* ISO/IEC 10646 BMP */
+#define LEADING_BYTE_UCS_BMP (CHARSET_ID_OFFSET - 3)
+
+/* ISO/IEC 10646 for CNS */
+#define LEADING_BYTE_UCS_CNS (CHARSET_ID_OFFSET - 5)
+
+/* ISO/IEC 10646 for JIS */
+#define LEADING_BYTE_UCS_JIS (CHARSET_ID_OFFSET - 6)
+
+/* ISO/IEC 10646 for Big5 */
+#define LEADING_BYTE_UCS_BIG5 (CHARSET_ID_OFFSET - 9)
+
+/* Japanese JIS X0208-1990 2/4 2/{(8),9,10,11} 4/2 (B) */
+#define LEADING_BYTE_JAPANESE_JISX0208_1990 (CHARSET_ID_OFFSET - 10)
+
+/* Chinese GB 12345-1990 */
+#define LEADING_BYTE_CHINESE_GB12345 (CHARSET_ID_OFFSET - 11)
+
+#define LEADING_BYTE_CHINESE_BIG5 (CHARSET_ID_OFFSET - 20)
+
+/* Big5 Level 1 2/4 2/{(8),9,10,11} 4/0 '0' */
+#define LEADING_BYTE_CHINESE_BIG5_1 (CHARSET_ID_OFFSET - 21)
+
+/* Big5 Level 2 2/4 2/{(8),9,10,11} 4/0 '1' */
+#define LEADING_BYTE_CHINESE_BIG5_2 (CHARSET_ID_OFFSET - 22)
+
+#define LEADING_BYTE_CHINESE_BIG5_CDP (CHARSET_ID_OFFSET - 23)
+
+/* VISCII 1.1 */
+#define LEADING_BYTE_LATIN_VISCII (CHARSET_ID_OFFSET - 24)
+
+/* MULE VISCII-LOWER (CHARSET_ID_OFFSET_96 + '1') */
+#define LEADING_BYTE_LATIN_VISCII_LOWER (CHARSET_ID_OFFSET - 25)
+
+/* MULE VISCII-UPPER (CHARSET_ID_OFFSET_96 + '2') */
+#define LEADING_BYTE_LATIN_VISCII_UPPER (CHARSET_ID_OFFSET - 26)