#ifndef _WC_ISO2022_H #define _WC_ISO2022_H #define WC_C_ESC 0x1B /* '\033' */ #define WC_C_SS2 0x4E /* ESC 'N' */ #define WC_C_SS3 0x4F /* ESC 'O' */ #define WC_C_LS2 0x6E /* ESC 'n' */ #define WC_C_LS3 0x6F /* ESC 'o' */ #define WC_C_LS1R 0x7E /* ESC '~' */ #define WC_C_LS2R 0x7D /* ESC '}' */ #define WC_C_LS3R 0x7C /* ESC '|' */ #define WC_C_G0_CS94 0x28 /* ESC '(' F */ #define WC_C_G1_CS94 0x29 /* ESC ')' F */ #define WC_C_G2_CS94 0x2A /* ESC '*' F */ #define WC_C_G3_CS94 0x2B /* ESC '+' F */ #define WC_C_G0_CS96 0x2C /* ESC ',' F */ /* ISO 2022 does not permit */ #define WC_C_G1_CS96 0x2D /* ESC '-' F */ #define WC_C_G2_CS96 0x2E /* ESC '.' F */ #define WC_C_G3_CS96 0x2F /* ESC '/' F */ #define WC_C_MBCS 0x24 /* ESC '$' G F */ #define WC_C_CS942 0x21 /* ESC G '!' F */ #define WC_C_C0 0x21 /* ESC '!' F */ #define WC_C_C1 0x22 /* ESC '"' F */ #define WC_C_REP 0x26 /* ESC '&' F ESC '"' F */ #define WC_C_CSWSR 0x25 /* ESC '%' F */ #define WC_C_CSWOSR 0x2F /* ESC '%' '/' F */ #define WC_C_SO 0x0E /* '\016' */ #define WC_C_SI 0x0F /* '\017' */ #define WC_C_SS2R 0x8E #define WC_C_SS3R 0x8F #define WC_F_ISO_646_US 0x42 /* 'B' */ #define WC_F_ISO_646_IRV WC_F_ISO_646_US #define WC_F_US_ASCII WC_F_ISO_646_US #define WC_F_JIS_X_0201K 0x49 /* 'I' */ #define WC_F_JIS_X_0201 0x4A /* 'J' */ #define WC_F_GB_1988 0x54 /* 'T' */ #define WC_F_ISO_8859_1 0x41 /* 'A' */ #define WC_F_ISO_8859_2 0x42 /* 'B' */ #define WC_F_ISO_8859_3 0x43 /* 'C' */ #define WC_F_ISO_8859_4 0x44 /* 'D' */ #define WC_F_ISO_8859_5 0x4C /* 'L' */ #define WC_F_ISO_8859_6 0x47 /* 'G' */ #define WC_F_ISO_8859_7 0x46 /* 'F' */ #define WC_F_ISO_8859_8 0x48 /* 'H' */ #define WC_F_ISO_8859_9 0x4D /* 'M' */ #define WC_F_ISO_8859_10 0x56 /* 'V' */ #define WC_F_ISO_8859_11 0x54 /* 'T' */ #define WC_F_TIS_620 WC_F_ISO_8859_11 #define WC_F_ISO_8859_13 0x59 /* 'Y' */ #define WC_F_ISO_8859_14 0x5F /* '_' */ #define WC_F_ISO_8859_15 0x62 /* 'b' */ #define WC_F_ISO_8859_16 0x66 /* 'f' */ #define WC_F_JIS_C_6226 0x40 /* '@' */ #define WC_F_GB_2312 0x41 /* 'A' */ #define WC_F_JIS_X_0208 0x42 /* 'B' */ #define WC_F_KS_X_1001 0x43 /* 'C' */ #define WC_F_KS_C_5601 WC_F_KS_X_1001 #define WC_F_JIS_X_0212 0x44 /* 'D' */ #define WC_F_ISO_IR_165 0x45 /* 'E' */ #define WC_F_CCITT_GB WC_F_ISO_IR_165 #define WC_F_CNS_11643_1 0x47 /* 'G' */ #define WC_F_CNS_11643_2 0x48 /* 'H' */ #define WC_F_CNS_11643_3 0x49 /* 'I' */ #define WC_F_CNS_11643_4 0x4A /* 'J' */ #define WC_F_CNS_11643_5 0x4B /* 'K' */ #define WC_F_CNS_11643_6 0x4C /* 'L' */ #define WC_F_CNS_11643_7 0x4D /* 'M' */ #define WC_F_KPS_9566 0x4E /* 'N' */ #define WC_F_JIS_X_0213_1 0x4F /* 'O' */ #define WC_F_JIS_X_0213_2 0x50 /* 'P' */ #define WC_ISO_NOSTATE 0 #define WC_ISO_MBYTE1 1 #define WC_EUC_NOSTATE 0 #define WC_EUC_MBYTE1 2 /* for EUC (G1) */ #define WC_EUC_TW_SS2 3 /* for EUC_TW (G2) */ #define WC_EUC_TW_MBYTE1 4 /* for EUC_TW (G2) */ #define WC_EUC_TW_MBYTE2 5 /* for EUC_TW (G2) */ #define WC_ISO_ESC 6 #define WC_ISO_CSWSR 0x10 #define WC_ISO_CSWOSR 0x20 #define WC_ISO_MAP_CG 0xF0 #define WC_ISO_MAP_C0 0x10 /* 0x00 - 0x1F */ #define WC_ISO_MAP_GL 0x00 /* 0x21 - 0x7E */ #define WC_ISO_MAP_GL96 0x20 /* 0x20, 0x7F */ #define WC_ISO_MAP_C1 0x50 /* 0x80 - 0x9F */ #define WC_ISO_MAP_GR 0x40 /* 0xA1 - 0xFE */ #define WC_ISO_MAP_GR96 0x60 /* 0xA0, 0xFF */ #define WC_ISO_MAP_SO (0x1 | WC_ISO_MAP_C0) /* 0x0E */ #define WC_ISO_MAP_SI (0x2 | WC_ISO_MAP_C0) /* 0x0F */ #define WC_ISO_MAP_ESC (0x3 | WC_ISO_MAP_C0) /* 0x1B */ #define WC_ISO_MAP_SS2 (0x4 | WC_ISO_MAP_C1) /* 0x8E */ #define WC_ISO_MAP_SS3 (0x5 | WC_ISO_MAP_C1) /* 0x8F */ #define WC_ISO_MAP_DETECT 0x4F #define WC_CS94WUL_N(U,L) (((U) - 0x21) * 0x5E + (L) - 0x21) #define WC_CS94W_N(c) WC_CS94WUL_N(((c) >> 8) & 0x7F, (c) & 0x7F) #define WC_CS96WUL_N(U,L) (((U) - 0x20) * 0x60 + (L) - 0x20) #define WC_CS96W_N(c) WC_CS96WUL_N(((c) >> 8) & 0x7F, (c) & 0x7F) #define WC_N_CS94WU(c) ((c) / 0x5E + 0x21) #define WC_N_CS94WL(c) ((c) % 0x5E + 0x21) #define WC_N_CS94W(c) ((WC_N_CS94WU(c) << 8) + WC_N_CS94WL(c)) #define WC_N_CS96WU(c) ((c) / 0x60 + 0x20) #define WC_N_CS96WL(c) ((c) % 0x60 + 0x20) #define WC_N_CS96W(c) ((WC_N_CS96WU(c) << 8) + WC_N_CS96WL(c)) extern wc_uint8 WC_ISO_MAP[]; extern Str wc_conv_from_iso2022(Str is, wc_ces ces); extern void wc_push_to_iso2022(Str os, wc_wchar_t cc, wc_status *st); extern void wc_push_to_euc(Str os, wc_wchar_t cc, wc_status *st); extern void wc_push_to_eucjp(Str os, wc_wchar_t cc, wc_status *st); extern void wc_push_to_euctw(Str os, wc_wchar_t cc, wc_status *st); extern void wc_push_to_iso8859(Str os, wc_wchar_t cc, wc_status *st); extern void wc_push_to_iso2022_end(Str os, wc_status *st); extern int wc_parse_iso2022_esc(wc_uchar **ptr, wc_status *st); extern void wc_push_iso2022_esc(Str os, wc_ccs ccs, wc_uchar g, wc_uint8 invoke, wc_status *st); extern void wc_create_gmap(wc_status *st); extern Str wc_char_conv_from_iso2022(wc_uchar c, wc_status *st); #endif