1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
|
#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
|