nexmon – Blame information for rev 1
?pathlinks?
Rev | Author | Line No. | Line |
---|---|---|---|
1 | office | 1 | /* |
2 | * Copyright (C) 1999-2002, 2004-2010 Free Software Foundation, Inc. |
||
3 | * This file is part of the GNU LIBICONV Library. |
||
4 | * |
||
5 | * The GNU LIBICONV Library is free software; you can redistribute it |
||
6 | * and/or modify it under the terms of the GNU Library General Public |
||
7 | * License as published by the Free Software Foundation; either version 2 |
||
8 | * of the License, or (at your option) any later version. |
||
9 | * |
||
10 | * The GNU LIBICONV Library is distributed in the hope that it will be |
||
11 | * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of |
||
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
||
13 | * Library General Public License for more details. |
||
14 | * |
||
15 | * You should have received a copy of the GNU Library General Public |
||
16 | * License along with the GNU LIBICONV Library; see the file COPYING.LIB. |
||
17 | * If not, write to the Free Software Foundation, Inc., 51 Franklin Street, |
||
18 | * Fifth Floor, Boston, MA 02110-1301, USA. |
||
19 | */ |
||
20 | |||
21 | /* This file defines all the converters. */ |
||
22 | |||
23 | |||
24 | /* Our own notion of wide character, as UCS-4, according to ISO-10646-1. */ |
||
25 | typedef unsigned int ucs4_t; |
||
26 | |||
27 | /* State used by a conversion. 0 denotes the initial state. */ |
||
28 | typedef unsigned int state_t; |
||
29 | |||
30 | /* iconv_t is an opaque type. This is the real iconv_t type. */ |
||
31 | typedef struct conv_struct * conv_t; |
||
32 | |||
33 | /* |
||
34 | * Data type for conversion multibyte -> unicode |
||
35 | */ |
||
36 | struct mbtowc_funcs { |
||
37 | int (*xxx_mbtowc) (conv_t conv, ucs4_t *pwc, unsigned char const *s, int n); |
||
38 | /* |
||
39 | * int xxx_mbtowc (conv_t conv, ucs4_t *pwc, unsigned char const *s, int n) |
||
40 | * converts the byte sequence starting at s to a wide character. Up to n bytes |
||
41 | * are available at s. n is >= 1. |
||
42 | * Result is number of bytes consumed (if a wide character was read), |
||
43 | * or -1 if invalid, or -2 if n too small, or -2-(number of bytes consumed) |
||
44 | * if only a shift sequence was read. |
||
45 | */ |
||
46 | int (*xxx_flushwc) (conv_t conv, ucs4_t *pwc); |
||
47 | /* |
||
48 | * int xxx_flushwc (conv_t conv, ucs4_t *pwc) |
||
49 | * returns to the initial state and stores the pending wide character, if any. |
||
50 | * Result is 1 (if a wide character was read) or 0 if none was pending. |
||
51 | */ |
||
52 | }; |
||
53 | |||
54 | /* Return code if invalid input after a shift sequence of n bytes was read. |
||
55 | (xxx_mbtowc) */ |
||
56 | #define RET_SHIFT_ILSEQ(n) (-1-2*(n)) |
||
57 | /* Return code if invalid. (xxx_mbtowc) */ |
||
58 | #define RET_ILSEQ RET_SHIFT_ILSEQ(0) |
||
59 | /* Return code if only a shift sequence of n bytes was read. (xxx_mbtowc) */ |
||
60 | #define RET_TOOFEW(n) (-2-2*(n)) |
||
61 | /* Retrieve the n from the encoded RET_... value. */ |
||
62 | #define DECODE_SHIFT_ILSEQ(r) ((unsigned int)(RET_SHIFT_ILSEQ(0) - (r)) / 2) |
||
63 | #define DECODE_TOOFEW(r) ((unsigned int)(RET_TOOFEW(0) - (r)) / 2) |
||
64 | |||
65 | /* |
||
66 | * Data type for conversion unicode -> multibyte |
||
67 | */ |
||
68 | struct wctomb_funcs { |
||
69 | int (*xxx_wctomb) (conv_t conv, unsigned char *r, ucs4_t wc, int n); |
||
70 | /* |
||
71 | * int xxx_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n) |
||
72 | * converts the wide character wc to the character set xxx, and stores the |
||
73 | * result beginning at r. Up to n bytes may be written at r. n is >= 1. |
||
74 | * Result is number of bytes written, or -1 if invalid, or -2 if n too small. |
||
75 | */ |
||
76 | int (*xxx_reset) (conv_t conv, unsigned char *r, int n); |
||
77 | /* |
||
78 | * int xxx_reset (conv_t conv, unsigned char *r, int n) |
||
79 | * stores a shift sequences returning to the initial state beginning at r. |
||
80 | * Up to n bytes may be written at r. n is >= 0. |
||
81 | * Result is number of bytes written, or -2 if n too small. |
||
82 | */ |
||
83 | }; |
||
84 | |||
85 | /* Return code if invalid. (xxx_wctomb) */ |
||
86 | #define RET_ILUNI -1 |
||
87 | /* Return code if output buffer is too small. (xxx_wctomb, xxx_reset) */ |
||
88 | #define RET_TOOSMALL -2 |
||
89 | |||
90 | /* |
||
91 | * Contents of a conversion descriptor. |
||
92 | */ |
||
93 | struct conv_struct { |
||
94 | struct loop_funcs lfuncs; |
||
95 | /* Input (conversion multibyte -> unicode) */ |
||
96 | int iindex; |
||
97 | struct mbtowc_funcs ifuncs; |
||
98 | state_t istate; |
||
99 | /* Output (conversion unicode -> multibyte) */ |
||
100 | int oindex; |
||
101 | struct wctomb_funcs ofuncs; |
||
102 | int oflags; |
||
103 | state_t ostate; |
||
104 | /* Operation flags */ |
||
105 | int transliterate; |
||
106 | int discard_ilseq; |
||
107 | #ifndef LIBICONV_PLUG |
||
108 | struct iconv_fallbacks fallbacks; |
||
109 | struct iconv_hooks hooks; |
||
110 | #endif |
||
111 | }; |
||
112 | |||
113 | /* |
||
114 | * Include all the converters. |
||
115 | */ |
||
116 | |||
117 | #include "ascii.h" |
||
118 | |||
119 | /* General multi-byte encodings */ |
||
120 | #include "utf8.h" |
||
121 | #include "ucs2.h" |
||
122 | #include "ucs2be.h" |
||
123 | #include "ucs2le.h" |
||
124 | #include "ucs4.h" |
||
125 | #include "ucs4be.h" |
||
126 | #include "ucs4le.h" |
||
127 | #include "utf16.h" |
||
128 | #include "utf16be.h" |
||
129 | #include "utf16le.h" |
||
130 | #include "utf32.h" |
||
131 | #include "utf32be.h" |
||
132 | #include "utf32le.h" |
||
133 | #include "utf7.h" |
||
134 | #include "ucs2internal.h" |
||
135 | #include "ucs2swapped.h" |
||
136 | #include "ucs4internal.h" |
||
137 | #include "ucs4swapped.h" |
||
138 | #include "c99.h" |
||
139 | #include "java.h" |
||
140 | |||
141 | /* 8-bit encodings */ |
||
142 | #include "iso8859_1.h" |
||
143 | #include "iso8859_2.h" |
||
144 | #include "iso8859_3.h" |
||
145 | #include "iso8859_4.h" |
||
146 | #include "iso8859_5.h" |
||
147 | #include "iso8859_6.h" |
||
148 | #include "iso8859_7.h" |
||
149 | #include "iso8859_8.h" |
||
150 | #include "iso8859_9.h" |
||
151 | #include "iso8859_10.h" |
||
152 | #include "iso8859_11.h" |
||
153 | #include "iso8859_13.h" |
||
154 | #include "iso8859_14.h" |
||
155 | #include "iso8859_15.h" |
||
156 | #include "iso8859_16.h" |
||
157 | #include "koi8_r.h" |
||
158 | #include "koi8_u.h" |
||
159 | #include "koi8_ru.h" |
||
160 | #include "cp1250.h" |
||
161 | #include "cp1251.h" |
||
162 | #include "cp1252.h" |
||
163 | #include "cp1253.h" |
||
164 | #include "cp1254.h" |
||
165 | #include "cp1255.h" |
||
166 | #include "cp1256.h" |
||
167 | #include "cp1257.h" |
||
168 | #include "cp1258.h" |
||
169 | #include "cp850.h" |
||
170 | #include "cp862.h" |
||
171 | #include "cp866.h" |
||
172 | #include "cp1131.h" |
||
173 | #include "mac_roman.h" |
||
174 | #include "mac_centraleurope.h" |
||
175 | #include "mac_iceland.h" |
||
176 | #include "mac_croatian.h" |
||
177 | #include "mac_romania.h" |
||
178 | #include "mac_cyrillic.h" |
||
179 | #include "mac_ukraine.h" |
||
180 | #include "mac_greek.h" |
||
181 | #include "mac_turkish.h" |
||
182 | #include "mac_hebrew.h" |
||
183 | #include "mac_arabic.h" |
||
184 | #include "mac_thai.h" |
||
185 | #include "hp_roman8.h" |
||
186 | #include "nextstep.h" |
||
187 | #include "armscii_8.h" |
||
188 | #include "georgian_academy.h" |
||
189 | #include "georgian_ps.h" |
||
190 | #include "koi8_t.h" |
||
191 | #include "pt154.h" |
||
192 | #include "rk1048.h" |
||
193 | #include "mulelao.h" |
||
194 | #include "cp1133.h" |
||
195 | #include "tis620.h" |
||
196 | #include "cp874.h" |
||
197 | #include "viscii.h" |
||
198 | #include "tcvn.h" |
||
199 | |||
200 | /* CJK character sets [CCS = coded character set] [CJKV.INF chapter 3] */ |
||
201 | |||
202 | typedef struct { |
||
203 | unsigned short indx; /* index into big table */ |
||
204 | unsigned short used; /* bitmask of used entries */ |
||
205 | } Summary16; |
||
206 | |||
207 | #include "iso646_jp.h" |
||
208 | #include "jisx0201.h" |
||
209 | #include "jisx0208.h" |
||
210 | #include "jisx0212.h" |
||
211 | |||
212 | #include "iso646_cn.h" |
||
213 | #include "gb2312.h" |
||
214 | #include "isoir165.h" |
||
215 | /*#include "gb12345.h"*/ |
||
216 | #include "gbk.h" |
||
217 | #include "cns11643.h" |
||
218 | #include "big5.h" |
||
219 | |||
220 | #include "ksc5601.h" |
||
221 | #include "johab_hangul.h" |
||
222 | |||
223 | /* CJK encodings [CES = character encoding scheme] [CJKV.INF chapter 4] */ |
||
224 | |||
225 | #include "euc_jp.h" |
||
226 | #include "sjis.h" |
||
227 | #include "cp932.h" |
||
228 | #include "iso2022_jp.h" |
||
229 | #include "iso2022_jp1.h" |
||
230 | #include "iso2022_jp2.h" |
||
231 | |||
232 | #include "euc_cn.h" |
||
233 | #include "ces_gbk.h" |
||
234 | #include "cp936.h" |
||
235 | #include "gb18030.h" |
||
236 | #include "iso2022_cn.h" |
||
237 | #include "iso2022_cnext.h" |
||
238 | #include "hz.h" |
||
239 | #include "euc_tw.h" |
||
240 | #include "ces_big5.h" |
||
241 | #include "cp950.h" |
||
242 | #include "big5hkscs1999.h" |
||
243 | #include "big5hkscs2001.h" |
||
244 | #include "big5hkscs2004.h" |
||
245 | #include "big5hkscs2008.h" |
||
246 | |||
247 | #include "euc_kr.h" |
||
248 | #include "cp949.h" |
||
249 | #include "johab.h" |
||
250 | #include "iso2022_kr.h" |
||
251 | |||
252 | /* Encodings used by system dependent locales. */ |
||
253 | |||
254 | #ifdef USE_AIX |
||
255 | #include "cp856.h" |
||
256 | #include "cp922.h" |
||
257 | #include "cp943.h" |
||
258 | #include "cp1046.h" |
||
259 | #include "cp1124.h" |
||
260 | #include "cp1129.h" |
||
261 | #include "cp1161.h" |
||
262 | #include "cp1162.h" |
||
263 | #include "cp1163.h" |
||
264 | #endif |
||
265 | |||
266 | #ifdef USE_OSF1 |
||
267 | #include "dec_kanji.h" |
||
268 | #include "dec_hanyu.h" |
||
269 | #endif |
||
270 | |||
271 | #ifdef USE_DOS |
||
272 | #include "cp437.h" |
||
273 | #include "cp737.h" |
||
274 | #include "cp775.h" |
||
275 | #include "cp852.h" |
||
276 | #include "cp853.h" |
||
277 | #include "cp855.h" |
||
278 | #include "cp857.h" |
||
279 | #include "cp858.h" |
||
280 | #include "cp860.h" |
||
281 | #include "cp861.h" |
||
282 | #include "cp863.h" |
||
283 | #include "cp864.h" |
||
284 | #include "cp865.h" |
||
285 | #include "cp869.h" |
||
286 | #include "cp1125.h" |
||
287 | #endif |
||
288 | |||
289 | #ifdef USE_EXTRA |
||
290 | #include "euc_jisx0213.h" |
||
291 | #include "shift_jisx0213.h" |
||
292 | #include "iso2022_jp3.h" |
||
293 | #include "big5_2003.h" |
||
294 | #include "tds565.h" |
||
295 | #include "atarist.h" |
||
296 | #include "riscos1.h" |
||
297 | #endif |
||
298 |