Lines Matching refs:filter

134 static int mbfl_filt_conv_jis_wchar(int c, mbfl_convert_filter *filter)  in mbfl_filt_conv_jis_wchar()  argument
139 switch (filter->status & 0xf) { in mbfl_filt_conv_jis_wchar()
147 filter->status += 2; in mbfl_filt_conv_jis_wchar()
149 filter->status = 0x20; in mbfl_filt_conv_jis_wchar()
151 filter->status = 0; in mbfl_filt_conv_jis_wchar()
152 } else if (filter->status == 0x10 && c == 0x5c) { /* YEN SIGN */ in mbfl_filt_conv_jis_wchar()
153 CK((*filter->output_function)(0xa5, filter->data)); in mbfl_filt_conv_jis_wchar()
154 } else if (filter->status == 0x10 && c == 0x7e) { /* OVER LINE */ in mbfl_filt_conv_jis_wchar()
155 CK((*filter->output_function)(0x203e, filter->data)); in mbfl_filt_conv_jis_wchar()
156 } else if (filter->status == 0x20 && c > 0x20 && c < 0x60) { /* kana */ in mbfl_filt_conv_jis_wchar()
157 CK((*filter->output_function)(0xff40 + c, filter->data)); in mbfl_filt_conv_jis_wchar()
158 …} else if ((filter->status == 0x80 || filter->status == 0x90) && c > 0x20 && c < 0x7f) { /* kanji… in mbfl_filt_conv_jis_wchar()
159 filter->cache = c; in mbfl_filt_conv_jis_wchar()
160 filter->status += 1; in mbfl_filt_conv_jis_wchar()
162 CK((*filter->output_function)(c, filter->data)); in mbfl_filt_conv_jis_wchar()
164 CK((*filter->output_function)(0xfec0 + c, filter->data)); in mbfl_filt_conv_jis_wchar()
166 CK((*filter->output_function)(MBFL_BAD_INPUT, filter->data)); in mbfl_filt_conv_jis_wchar()
173 filter->status &= ~0xf; in mbfl_filt_conv_jis_wchar()
174 c1 = filter->cache; in mbfl_filt_conv_jis_wchar()
177 if (filter->status == 0x80) { in mbfl_filt_conv_jis_wchar()
198 CK((*filter->output_function)(w, filter->data)); in mbfl_filt_conv_jis_wchar()
200 CK((*filter->output_function)(MBFL_BAD_INPUT, filter->data)); in mbfl_filt_conv_jis_wchar()
212 filter->status++; in mbfl_filt_conv_jis_wchar()
214 filter->status += 3; in mbfl_filt_conv_jis_wchar()
216 filter->status &= ~0xf; in mbfl_filt_conv_jis_wchar()
217 CK((*filter->output_function)(MBFL_BAD_INPUT, filter->data)); in mbfl_filt_conv_jis_wchar()
230 filter->status = 0x80; in mbfl_filt_conv_jis_wchar()
232 filter->status++; in mbfl_filt_conv_jis_wchar()
234 filter->status &= ~0xf; in mbfl_filt_conv_jis_wchar()
235 CK((*filter->output_function)(MBFL_BAD_INPUT, filter->data)); in mbfl_filt_conv_jis_wchar()
236 CK((*filter->output_function)(0x24, filter->data)); in mbfl_filt_conv_jis_wchar()
249 filter->status = 0x80; in mbfl_filt_conv_jis_wchar()
251 filter->status = 0x90; in mbfl_filt_conv_jis_wchar()
253 filter->status &= ~0xf; in mbfl_filt_conv_jis_wchar()
254 CK((*filter->output_function)(MBFL_BAD_INPUT, filter->data)); in mbfl_filt_conv_jis_wchar()
255 CK((*filter->output_function)(0x24, filter->data)); in mbfl_filt_conv_jis_wchar()
256 CK((*filter->output_function)(0x28, filter->data)); in mbfl_filt_conv_jis_wchar()
269 filter->status = 0; in mbfl_filt_conv_jis_wchar()
271 filter->status = 0x10; in mbfl_filt_conv_jis_wchar()
273 filter->status = 0x20; in mbfl_filt_conv_jis_wchar()
275 filter->status &= ~0xf; in mbfl_filt_conv_jis_wchar()
276 CK((*filter->output_function)(MBFL_BAD_INPUT, filter->data)); in mbfl_filt_conv_jis_wchar()
277 CK((*filter->output_function)(0x28, filter->data)); in mbfl_filt_conv_jis_wchar()
288 static int mbfl_filt_conv_jis_wchar_flush(mbfl_convert_filter *filter) in mbfl_filt_conv_jis_wchar_flush() argument
290 if (filter->status & 0xF) { in mbfl_filt_conv_jis_wchar_flush()
293 CK((*filter->output_function)(MBFL_BAD_INPUT, filter->data)); in mbfl_filt_conv_jis_wchar_flush()
295 filter->status = 0; in mbfl_filt_conv_jis_wchar_flush()
297 if (filter->flush_function) { in mbfl_filt_conv_jis_wchar_flush()
298 (*filter->flush_function)(filter->data); in mbfl_filt_conv_jis_wchar_flush()
304 static int mbfl_filt_conv_wchar_jis(int c, mbfl_convert_filter *filter) in mbfl_filt_conv_wchar_jis() argument
343 if ((filter->status & 0xff00) != 0) { in mbfl_filt_conv_wchar_jis()
344 CK((*filter->output_function)(0x1b, filter->data)); /* ESC */ in mbfl_filt_conv_wchar_jis()
345 CK((*filter->output_function)(0x28, filter->data)); /* '(' */ in mbfl_filt_conv_wchar_jis()
346 CK((*filter->output_function)(0x42, filter->data)); /* 'B' */ in mbfl_filt_conv_wchar_jis()
348 filter->status = 0; in mbfl_filt_conv_wchar_jis()
349 CK((*filter->output_function)(s, filter->data)); in mbfl_filt_conv_wchar_jis()
351 if ((filter->status & 0xff00) != 0x200) { in mbfl_filt_conv_wchar_jis()
352 CK((*filter->output_function)(0x1b, filter->data)); /* ESC */ in mbfl_filt_conv_wchar_jis()
353 CK((*filter->output_function)(0x24, filter->data)); /* '$' */ in mbfl_filt_conv_wchar_jis()
354 CK((*filter->output_function)(0x42, filter->data)); /* 'B' */ in mbfl_filt_conv_wchar_jis()
356 filter->status = 0x200; in mbfl_filt_conv_wchar_jis()
357 CK((*filter->output_function)((s >> 8) & 0x7f, filter->data)); in mbfl_filt_conv_wchar_jis()
358 CK((*filter->output_function)(s & 0x7f, filter->data)); in mbfl_filt_conv_wchar_jis()
360 if ((filter->status & 0xff00) != 0x300) { in mbfl_filt_conv_wchar_jis()
361 CK((*filter->output_function)(0x1b, filter->data)); /* ESC */ in mbfl_filt_conv_wchar_jis()
362 CK((*filter->output_function)(0x24, filter->data)); /* '$' */ in mbfl_filt_conv_wchar_jis()
363 CK((*filter->output_function)(0x28, filter->data)); /* '(' */ in mbfl_filt_conv_wchar_jis()
364 CK((*filter->output_function)(0x44, filter->data)); /* 'D' */ in mbfl_filt_conv_wchar_jis()
366 filter->status = 0x300; in mbfl_filt_conv_wchar_jis()
367 CK((*filter->output_function)((s >> 8) & 0x7f, filter->data)); in mbfl_filt_conv_wchar_jis()
368 CK((*filter->output_function)(s & 0x7f, filter->data)); in mbfl_filt_conv_wchar_jis()
370 if ((filter->status & 0xff00) != 0x400) { in mbfl_filt_conv_wchar_jis()
371 CK((*filter->output_function)(0x1b, filter->data)); /* ESC */ in mbfl_filt_conv_wchar_jis()
372 CK((*filter->output_function)(0x28, filter->data)); /* '(' */ in mbfl_filt_conv_wchar_jis()
373 CK((*filter->output_function)(0x4a, filter->data)); /* 'J' */ in mbfl_filt_conv_wchar_jis()
375 filter->status = 0x400; in mbfl_filt_conv_wchar_jis()
376 CK((*filter->output_function)(s & 0x7f, filter->data)); in mbfl_filt_conv_wchar_jis()
379 CK(mbfl_filt_conv_illegal_output(c, filter)); in mbfl_filt_conv_wchar_jis()
385 static int mbfl_filt_conv_wchar_2022jp(int c, mbfl_convert_filter *filter) in mbfl_filt_conv_wchar_2022jp() argument
426 if ((filter->status & 0xff00) != 0) { in mbfl_filt_conv_wchar_2022jp()
427 CK((*filter->output_function)(0x1b, filter->data)); /* ESC */ in mbfl_filt_conv_wchar_2022jp()
428 CK((*filter->output_function)(0x28, filter->data)); /* '(' */ in mbfl_filt_conv_wchar_2022jp()
429 CK((*filter->output_function)(0x42, filter->data)); /* 'B' */ in mbfl_filt_conv_wchar_2022jp()
431 filter->status = 0; in mbfl_filt_conv_wchar_2022jp()
432 CK((*filter->output_function)(s, filter->data)); in mbfl_filt_conv_wchar_2022jp()
434 if ((filter->status & 0xff00) != 0x200) { in mbfl_filt_conv_wchar_2022jp()
435 CK((*filter->output_function)(0x1b, filter->data)); /* ESC */ in mbfl_filt_conv_wchar_2022jp()
436 CK((*filter->output_function)(0x24, filter->data)); /* '$' */ in mbfl_filt_conv_wchar_2022jp()
437 CK((*filter->output_function)(0x42, filter->data)); /* 'B' */ in mbfl_filt_conv_wchar_2022jp()
439 filter->status = 0x200; in mbfl_filt_conv_wchar_2022jp()
440 CK((*filter->output_function)((s >> 8) & 0x7f, filter->data)); in mbfl_filt_conv_wchar_2022jp()
441 CK((*filter->output_function)(s & 0x7f, filter->data)); in mbfl_filt_conv_wchar_2022jp()
443 if ((filter->status & 0xff00) != 0x400) { in mbfl_filt_conv_wchar_2022jp()
444 CK((*filter->output_function)(0x1b, filter->data)); /* ESC */ in mbfl_filt_conv_wchar_2022jp()
445 CK((*filter->output_function)(0x28, filter->data)); /* '(' */ in mbfl_filt_conv_wchar_2022jp()
446 CK((*filter->output_function)(0x4a, filter->data)); /* 'J' */ in mbfl_filt_conv_wchar_2022jp()
448 filter->status = 0x400; in mbfl_filt_conv_wchar_2022jp()
449 CK((*filter->output_function)(s & 0x7f, filter->data)); in mbfl_filt_conv_wchar_2022jp()
980 static int mbfl_filt_conv_2022jp_mobile_wchar(int c, mbfl_convert_filter *filter) in mbfl_filt_conv_2022jp_mobile_wchar() argument
984 switch (filter->status & 0xF) { in mbfl_filt_conv_2022jp_mobile_wchar()
987 filter->status += 2; in mbfl_filt_conv_2022jp_mobile_wchar()
988 } else if (filter->status == JISX0201_KANA && c > 0x20 && c < 0x60) { in mbfl_filt_conv_2022jp_mobile_wchar()
989 CK((*filter->output_function)(0xFF40 + c, filter->data)); in mbfl_filt_conv_2022jp_mobile_wchar()
990 } else if (filter->status == JISX0208_KANJI && c > 0x20 && c < 0x80) { in mbfl_filt_conv_2022jp_mobile_wchar()
991 filter->cache = c; in mbfl_filt_conv_2022jp_mobile_wchar()
992 filter->status += 1; in mbfl_filt_conv_2022jp_mobile_wchar()
994 CK((*filter->output_function)(c, filter->data)); in mbfl_filt_conv_2022jp_mobile_wchar()
996 CK((*filter->output_function)(0xFEC0 + c, filter->data)); in mbfl_filt_conv_2022jp_mobile_wchar()
998 CK((*filter->output_function)(MBFL_BAD_INPUT, filter->data)); in mbfl_filt_conv_2022jp_mobile_wchar()
1005 filter->status &= ~0xF; in mbfl_filt_conv_2022jp_mobile_wchar()
1006 c1 = filter->cache; in mbfl_filt_conv_2022jp_mobile_wchar()
1032 (*filter->output_function)(snd, filter->data); in mbfl_filt_conv_2022jp_mobile_wchar()
1047 CK((*filter->output_function)(w, filter->data)); in mbfl_filt_conv_2022jp_mobile_wchar()
1049 CK((*filter->output_function)(MBFL_BAD_INPUT, filter->data)); in mbfl_filt_conv_2022jp_mobile_wchar()
1056 filter->status++; in mbfl_filt_conv_2022jp_mobile_wchar()
1058 filter->status += 3; in mbfl_filt_conv_2022jp_mobile_wchar()
1060 filter->status &= ~0xF; in mbfl_filt_conv_2022jp_mobile_wchar()
1061 CK((*filter->output_function)(MBFL_BAD_INPUT, filter->data)); in mbfl_filt_conv_2022jp_mobile_wchar()
1068 filter->status = JISX0208_KANJI; in mbfl_filt_conv_2022jp_mobile_wchar()
1070 filter->status++; in mbfl_filt_conv_2022jp_mobile_wchar()
1072 filter->status &= ~0xF; in mbfl_filt_conv_2022jp_mobile_wchar()
1073 CK((*filter->output_function)(MBFL_BAD_INPUT, filter->data)); in mbfl_filt_conv_2022jp_mobile_wchar()
1080 filter->status = JISX0208_KANJI; in mbfl_filt_conv_2022jp_mobile_wchar()
1082 filter->status &= ~0xF; in mbfl_filt_conv_2022jp_mobile_wchar()
1083 CK((*filter->output_function)(MBFL_BAD_INPUT, filter->data)); in mbfl_filt_conv_2022jp_mobile_wchar()
1090 filter->status = 0; /* ASCII mode */ in mbfl_filt_conv_2022jp_mobile_wchar()
1092 filter->status = JISX0201_KANA; in mbfl_filt_conv_2022jp_mobile_wchar()
1094 filter->status &= ~0xF; in mbfl_filt_conv_2022jp_mobile_wchar()
1095 CK((*filter->output_function)(MBFL_BAD_INPUT, filter->data)); in mbfl_filt_conv_2022jp_mobile_wchar()
1102 static int mbfl_filt_conv_2022jp_mobile_wchar_flush(mbfl_convert_filter *filter) in mbfl_filt_conv_2022jp_mobile_wchar_flush() argument
1104 if (filter->status & 0xF) { in mbfl_filt_conv_2022jp_mobile_wchar_flush()
1105 (*filter->output_function)(MBFL_BAD_INPUT, filter->data); in mbfl_filt_conv_2022jp_mobile_wchar_flush()
1107 filter->status = 0; in mbfl_filt_conv_2022jp_mobile_wchar_flush()
1109 if (filter->flush_function) { in mbfl_filt_conv_2022jp_mobile_wchar_flush()
1110 (*filter->flush_function)(filter->data); in mbfl_filt_conv_2022jp_mobile_wchar_flush()
1116 static int mbfilter_unicode2sjis_emoji_kddi(int c, int *s1, mbfl_convert_filter *filter) in mbfilter_unicode2sjis_emoji_kddi() argument
1118 if ((filter->status & 0xF) == 1) { in mbfilter_unicode2sjis_emoji_kddi()
1119 int c1 = filter->cache; in mbfilter_unicode2sjis_emoji_kddi()
1120 filter->cache = 0; in mbfilter_unicode2sjis_emoji_kddi()
1121 filter->status &= ~0xFF; in mbfilter_unicode2sjis_emoji_kddi()
1132 if (filter->status & 0xFF00) { in mbfilter_unicode2sjis_emoji_kddi()
1133 CK((*filter->output_function)(0x1B, filter->data)); /* ESC */ in mbfilter_unicode2sjis_emoji_kddi()
1134 CK((*filter->output_function)('(', filter->data)); in mbfilter_unicode2sjis_emoji_kddi()
1135 CK((*filter->output_function)('B', filter->data)); in mbfilter_unicode2sjis_emoji_kddi()
1137 CK((*filter->output_function)(c1, filter->data)); in mbfilter_unicode2sjis_emoji_kddi()
1138 filter->status = 0; in mbfilter_unicode2sjis_emoji_kddi()
1143 filter->status |= 1; in mbfilter_unicode2sjis_emoji_kddi()
1144 filter->cache = c; in mbfilter_unicode2sjis_emoji_kddi()
1183 static int mbfl_filt_conv_wchar_2022jp_mobile(int c, mbfl_convert_filter *filter) in mbfl_filt_conv_wchar_2022jp_mobile() argument
1215 if (mbfilter_unicode2sjis_emoji_kddi(c, &s1, filter) > 0) { in mbfl_filt_conv_wchar_2022jp_mobile()
1219 } else if ((filter->status & 0xFF) == 1 && filter->cache) { in mbfl_filt_conv_wchar_2022jp_mobile()
1240 if (filter->status & 0xFF00) { in mbfl_filt_conv_wchar_2022jp_mobile()
1241 CK((*filter->output_function)(0x1B, filter->data)); /* ESC */ in mbfl_filt_conv_wchar_2022jp_mobile()
1242 CK((*filter->output_function)('(', filter->data)); in mbfl_filt_conv_wchar_2022jp_mobile()
1243 CK((*filter->output_function)('B', filter->data)); in mbfl_filt_conv_wchar_2022jp_mobile()
1245 CK((*filter->output_function)(s1, filter->data)); in mbfl_filt_conv_wchar_2022jp_mobile()
1246 filter->status = 0; in mbfl_filt_conv_wchar_2022jp_mobile()
1248 if ((filter->status & 0xFF00) != 0x100) { in mbfl_filt_conv_wchar_2022jp_mobile()
1249 CK((*filter->output_function)(0x1B, filter->data)); /* ESC */ in mbfl_filt_conv_wchar_2022jp_mobile()
1250 CK((*filter->output_function)('(', filter->data)); in mbfl_filt_conv_wchar_2022jp_mobile()
1251 CK((*filter->output_function)('I', filter->data)); in mbfl_filt_conv_wchar_2022jp_mobile()
1253 filter->status = 0x100; in mbfl_filt_conv_wchar_2022jp_mobile()
1254 CK((*filter->output_function)(s1 & 0x7F, filter->data)); in mbfl_filt_conv_wchar_2022jp_mobile()
1256 if ((filter->status & 0xFF00) != 0x200) { in mbfl_filt_conv_wchar_2022jp_mobile()
1257 CK((*filter->output_function)(0x1B, filter->data)); /* ESC */ in mbfl_filt_conv_wchar_2022jp_mobile()
1258 CK((*filter->output_function)('$', filter->data)); in mbfl_filt_conv_wchar_2022jp_mobile()
1259 CK((*filter->output_function)('B', filter->data)); in mbfl_filt_conv_wchar_2022jp_mobile()
1261 filter->status = 0x200; in mbfl_filt_conv_wchar_2022jp_mobile()
1262 CK((*filter->output_function)((s1 >> 8) & 0xFF, filter->data)); in mbfl_filt_conv_wchar_2022jp_mobile()
1263 CK((*filter->output_function)(s1 & 0x7F, filter->data)); in mbfl_filt_conv_wchar_2022jp_mobile()
1266 CK(mbfl_filt_conv_illegal_output(c, filter)); in mbfl_filt_conv_wchar_2022jp_mobile()
1272 static int mbfl_filt_conv_wchar_2022jp_mobile_flush(mbfl_convert_filter *filter) in mbfl_filt_conv_wchar_2022jp_mobile_flush() argument
1275 if (filter->status & 0xFF00) { in mbfl_filt_conv_wchar_2022jp_mobile_flush()
1276 (*filter->output_function)(0x1B, filter->data); /* ESC */ in mbfl_filt_conv_wchar_2022jp_mobile_flush()
1277 (*filter->output_function)('(', filter->data); in mbfl_filt_conv_wchar_2022jp_mobile_flush()
1278 (*filter->output_function)('B', filter->data); in mbfl_filt_conv_wchar_2022jp_mobile_flush()
1281 int c1 = filter->cache; in mbfl_filt_conv_wchar_2022jp_mobile_flush()
1282 if ((filter->status & 0xFF) == 1 && (c1 == '#' || (c1 >= '0' && c1 <= '9'))) { in mbfl_filt_conv_wchar_2022jp_mobile_flush()
1283 (*filter->output_function)(c1, filter->data); in mbfl_filt_conv_wchar_2022jp_mobile_flush()
1285 filter->status = filter->cache = 0; in mbfl_filt_conv_wchar_2022jp_mobile_flush()
1287 if (filter->flush_function) { in mbfl_filt_conv_wchar_2022jp_mobile_flush()
1288 (*filter->flush_function)(filter->data); in mbfl_filt_conv_wchar_2022jp_mobile_flush()
1556 static int mbfl_filt_conv_jis2004_wchar(int c, mbfl_convert_filter *filter) in mbfl_filt_conv_jis2004_wchar() argument
1561 switch (filter->status & 0xf) { in mbfl_filt_conv_jis2004_wchar()
1564 if (filter->from->no_encoding == mbfl_no_encoding_eucjp2004) { in mbfl_filt_conv_jis2004_wchar()
1565 CK((*filter->output_function)(c, filter->data)); in mbfl_filt_conv_jis2004_wchar()
1566 } else if (filter->from->no_encoding == mbfl_no_encoding_sjis2004) { in mbfl_filt_conv_jis2004_wchar()
1568 CK((*filter->output_function)(0x00a5, filter->data)); in mbfl_filt_conv_jis2004_wchar()
1570 CK((*filter->output_function)(0x203e, filter->data)); in mbfl_filt_conv_jis2004_wchar()
1572 CK((*filter->output_function)(c, filter->data)); in mbfl_filt_conv_jis2004_wchar()
1576 filter->status += 6; in mbfl_filt_conv_jis2004_wchar()
1577 } else if ((filter->status == 0x80 || filter->status == 0x90 || filter->status == 0xa0) in mbfl_filt_conv_jis2004_wchar()
1579 filter->cache = c; in mbfl_filt_conv_jis2004_wchar()
1580 if (filter->status == 0x90) { in mbfl_filt_conv_jis2004_wchar()
1581 filter->status += 1; /* JIS X 0213 plane 1 */ in mbfl_filt_conv_jis2004_wchar()
1582 } else if (filter->status == 0xa0) { in mbfl_filt_conv_jis2004_wchar()
1583 filter->status += 4; /* JIS X 0213 plane 2 */ in mbfl_filt_conv_jis2004_wchar()
1585 filter->status += 5; /* JIS X 0208 */ in mbfl_filt_conv_jis2004_wchar()
1588 CK((*filter->output_function)(c, filter->data)); in mbfl_filt_conv_jis2004_wchar()
1592 if (filter->from->no_encoding == mbfl_no_encoding_eucjp2004) { in mbfl_filt_conv_jis2004_wchar()
1594 filter->status = 1; in mbfl_filt_conv_jis2004_wchar()
1595 filter->cache = c; in mbfl_filt_conv_jis2004_wchar()
1597 filter->cache = 0x8E; /* So error will be reported if input is truncated right here */ in mbfl_filt_conv_jis2004_wchar()
1598 filter->status = 2; in mbfl_filt_conv_jis2004_wchar()
1600 filter->status = 3; in mbfl_filt_conv_jis2004_wchar()
1602 CK((*filter->output_function)(MBFL_BAD_INPUT, filter->data)); in mbfl_filt_conv_jis2004_wchar()
1604 } else if (filter->from->no_encoding == mbfl_no_encoding_sjis2004) { in mbfl_filt_conv_jis2004_wchar()
1606 CK((*filter->output_function)(0xfec0 + c, filter->data)); in mbfl_filt_conv_jis2004_wchar()
1608 filter->status = 1; in mbfl_filt_conv_jis2004_wchar()
1609 filter->cache = c; in mbfl_filt_conv_jis2004_wchar()
1611 CK((*filter->output_function)(MBFL_BAD_INPUT, filter->data)); in mbfl_filt_conv_jis2004_wchar()
1614 CK((*filter->output_function)(MBFL_BAD_INPUT, filter->data)); in mbfl_filt_conv_jis2004_wchar()
1620 filter->status &= ~0xf; in mbfl_filt_conv_jis2004_wchar()
1621 c1 = filter->cache; in mbfl_filt_conv_jis2004_wchar()
1623 if (filter->from->no_encoding == mbfl_no_encoding_eucjp2004) { in mbfl_filt_conv_jis2004_wchar()
1628 CK((*filter->output_function)(MBFL_BAD_INPUT, filter->data)); in mbfl_filt_conv_jis2004_wchar()
1631 } else if (filter->from->no_encoding == mbfl_no_encoding_sjis2004) { in mbfl_filt_conv_jis2004_wchar()
1635 CK((*filter->output_function)(MBFL_BAD_INPUT, filter->data)); in mbfl_filt_conv_jis2004_wchar()
1643 CK((*filter->output_function)(MBFL_BAD_INPUT, filter->data)); in mbfl_filt_conv_jis2004_wchar()
1656 CK((*filter->output_function)(w, filter->data)); in mbfl_filt_conv_jis2004_wchar()
1680 CK((*filter->output_function)(w, filter->data)); in mbfl_filt_conv_jis2004_wchar()
1684 filter->status = 0; in mbfl_filt_conv_jis2004_wchar()
1687 CK((*filter->output_function)(w, filter->data)); in mbfl_filt_conv_jis2004_wchar()
1689 CK((*filter->output_function)(MBFL_BAD_INPUT, filter->data)); in mbfl_filt_conv_jis2004_wchar()
1695 filter->cache = c - 0x80; in mbfl_filt_conv_jis2004_wchar()
1696 filter->status++; in mbfl_filt_conv_jis2004_wchar()
1698 filter->status = 0; in mbfl_filt_conv_jis2004_wchar()
1699 CK((*filter->output_function)(MBFL_BAD_INPUT, filter->data)); in mbfl_filt_conv_jis2004_wchar()
1704 filter->status &= ~0xF; in mbfl_filt_conv_jis2004_wchar()
1705 c1 = filter->cache; in mbfl_filt_conv_jis2004_wchar()
1706 if (filter->from->no_encoding == mbfl_no_encoding_eucjp2004) { in mbfl_filt_conv_jis2004_wchar()
1713 CK((*filter->output_function)(MBFL_BAD_INPUT, filter->data)); in mbfl_filt_conv_jis2004_wchar()
1747 CK((*filter->output_function)(w, filter->data)); in mbfl_filt_conv_jis2004_wchar()
1749 CK((*filter->output_function)(MBFL_BAD_INPUT, filter->data)); in mbfl_filt_conv_jis2004_wchar()
1754 filter->status &= ~0xf; in mbfl_filt_conv_jis2004_wchar()
1755 c1 = filter->cache; in mbfl_filt_conv_jis2004_wchar()
1767 CK((*filter->output_function)(w, filter->data)); in mbfl_filt_conv_jis2004_wchar()
1779 filter->status++; in mbfl_filt_conv_jis2004_wchar()
1781 filter->status += 3; in mbfl_filt_conv_jis2004_wchar()
1783 filter->status &= ~0xf; in mbfl_filt_conv_jis2004_wchar()
1784 CK((*filter->output_function)(MBFL_BAD_INPUT, filter->data)); in mbfl_filt_conv_jis2004_wchar()
1797 filter->status = 0x80; in mbfl_filt_conv_jis2004_wchar()
1799 filter->status++; in mbfl_filt_conv_jis2004_wchar()
1801 filter->status &= ~0xf; in mbfl_filt_conv_jis2004_wchar()
1802 CK((*filter->output_function)(MBFL_BAD_INPUT, filter->data)); in mbfl_filt_conv_jis2004_wchar()
1815 filter->status = 0x90; in mbfl_filt_conv_jis2004_wchar()
1817 filter->status = 0xa0; in mbfl_filt_conv_jis2004_wchar()
1819 filter->status &= ~0xf; in mbfl_filt_conv_jis2004_wchar()
1820 CK((*filter->output_function)(MBFL_BAD_INPUT, filter->data)); in mbfl_filt_conv_jis2004_wchar()
1832 filter->status = 0; in mbfl_filt_conv_jis2004_wchar()
1834 filter->status &= ~0xf; in mbfl_filt_conv_jis2004_wchar()
1835 CK((*filter->output_function)(MBFL_BAD_INPUT, filter->data)); in mbfl_filt_conv_jis2004_wchar()
1845 static int mbfl_filt_conv_jis2004_wchar_flush(mbfl_convert_filter *filter) in mbfl_filt_conv_jis2004_wchar_flush() argument
1847 if (filter->status & 0xF) { in mbfl_filt_conv_jis2004_wchar_flush()
1848 CK((*filter->output_function)(MBFL_BAD_INPUT, filter->data)); in mbfl_filt_conv_jis2004_wchar_flush()
1850 filter->status = 0; in mbfl_filt_conv_jis2004_wchar_flush()
1852 if (filter->flush_function) { in mbfl_filt_conv_jis2004_wchar_flush()
1853 return (*filter->flush_function)(filter->data); in mbfl_filt_conv_jis2004_wchar_flush()
1859 static int mbfl_filt_conv_wchar_jis2004(int c, mbfl_convert_filter *filter) in mbfl_filt_conv_wchar_jis2004() argument
1867 if ((filter->status & 0xf) == 0 && ( in mbfl_filt_conv_wchar_jis2004()
1875 filter->status++; in mbfl_filt_conv_wchar_jis2004()
1876 filter->cache = k; in mbfl_filt_conv_wchar_jis2004()
1883 if ((filter->status & 0xf) == 1 && filter->cache >= 0 && filter->cache < jisx0213_u2_tbl_len) { in mbfl_filt_conv_wchar_jis2004()
1884 k = filter->cache; in mbfl_filt_conv_wchar_jis2004()
1885 filter->status &= ~0xf; in mbfl_filt_conv_wchar_jis2004()
1886 filter->cache = 0; in mbfl_filt_conv_wchar_jis2004()
1897 if (filter->to->no_encoding == mbfl_no_encoding_sjis2004) { in mbfl_filt_conv_wchar_jis2004()
1901 } else if (filter->to->no_encoding == mbfl_no_encoding_eucjp2004) { in mbfl_filt_conv_wchar_jis2004()
1905 if (filter->status != 0x200) { in mbfl_filt_conv_wchar_jis2004()
1906 CK((*filter->output_function)(0x1b, filter->data)); in mbfl_filt_conv_wchar_jis2004()
1907 CK((*filter->output_function)('$', filter->data)); in mbfl_filt_conv_wchar_jis2004()
1908 CK((*filter->output_function)('(', filter->data)); in mbfl_filt_conv_wchar_jis2004()
1909 CK((*filter->output_function)('Q', filter->data)); in mbfl_filt_conv_wchar_jis2004()
1911 filter->status = 0x200; in mbfl_filt_conv_wchar_jis2004()
1918 CK((*filter->output_function)(s1, filter->data)); in mbfl_filt_conv_wchar_jis2004()
1919 CK((*filter->output_function)(s2, filter->data)); in mbfl_filt_conv_wchar_jis2004()
1975 if (filter->to->no_encoding == mbfl_no_encoding_2022jp_2004 && (filter->status & 0xff00)) { in mbfl_filt_conv_wchar_jis2004()
1976 CK((*filter->output_function)(0x1b, filter->data)); /* ESC */ in mbfl_filt_conv_wchar_jis2004()
1977 CK((*filter->output_function)('(', filter->data)); in mbfl_filt_conv_wchar_jis2004()
1978 CK((*filter->output_function)('B', filter->data)); in mbfl_filt_conv_wchar_jis2004()
1980 filter->status = 0; in mbfl_filt_conv_wchar_jis2004()
1981 CK((*filter->output_function)(s1, filter->data)); in mbfl_filt_conv_wchar_jis2004()
1983 if (filter->to->no_encoding == mbfl_no_encoding_eucjp2004) { in mbfl_filt_conv_wchar_jis2004()
1984 CK((*filter->output_function)(0x8e, filter->data)); in mbfl_filt_conv_wchar_jis2004()
1985 CK((*filter->output_function)(s1, filter->data)); in mbfl_filt_conv_wchar_jis2004()
1986 } else if (filter->to->no_encoding == mbfl_no_encoding_sjis2004 && (s1 >= 0xA1 && s1 <= 0xDF)) { in mbfl_filt_conv_wchar_jis2004()
1987 CK((*filter->output_function)(s1, filter->data)); in mbfl_filt_conv_wchar_jis2004()
1989 CK(mbfl_filt_conv_illegal_output(c, filter)); in mbfl_filt_conv_wchar_jis2004()
1992 if (filter->to->no_encoding == mbfl_no_encoding_sjis2004) { in mbfl_filt_conv_wchar_jis2004()
1996 } else if (filter->to->no_encoding == mbfl_no_encoding_eucjp2004) { in mbfl_filt_conv_wchar_jis2004()
2000 if ((filter->status & 0xff00) != 0x200) { in mbfl_filt_conv_wchar_jis2004()
2001 CK((*filter->output_function)(0x1b, filter->data)); /* ESC */ in mbfl_filt_conv_wchar_jis2004()
2002 CK((*filter->output_function)('$', filter->data)); in mbfl_filt_conv_wchar_jis2004()
2003 CK((*filter->output_function)('(', filter->data)); in mbfl_filt_conv_wchar_jis2004()
2004 CK((*filter->output_function)('Q', filter->data)); in mbfl_filt_conv_wchar_jis2004()
2006 filter->status = 0x200; in mbfl_filt_conv_wchar_jis2004()
2010 CK((*filter->output_function)(s1, filter->data)); in mbfl_filt_conv_wchar_jis2004()
2011 CK((*filter->output_function)(s2, filter->data)); in mbfl_filt_conv_wchar_jis2004()
2013 if (filter->to->no_encoding == mbfl_no_encoding_sjis2004) { in mbfl_filt_conv_wchar_jis2004()
2023 if (filter->to->no_encoding == mbfl_no_encoding_eucjp2004) { in mbfl_filt_conv_wchar_jis2004()
2026 CK((*filter->output_function)(0x8f, filter->data)); in mbfl_filt_conv_wchar_jis2004()
2028 if ((filter->status & 0xff00) != 0x200) { in mbfl_filt_conv_wchar_jis2004()
2029 CK((*filter->output_function)(0x1b, filter->data)); /* ESC */ in mbfl_filt_conv_wchar_jis2004()
2030 CK((*filter->output_function)('$', filter->data)); in mbfl_filt_conv_wchar_jis2004()
2031 CK((*filter->output_function)('(', filter->data)); in mbfl_filt_conv_wchar_jis2004()
2032 CK((*filter->output_function)('P', filter->data)); in mbfl_filt_conv_wchar_jis2004()
2034 filter->status = 0x200; in mbfl_filt_conv_wchar_jis2004()
2038 CK((*filter->output_function)(s1, filter->data)); in mbfl_filt_conv_wchar_jis2004()
2039 CK((*filter->output_function)(s2, filter->data)); in mbfl_filt_conv_wchar_jis2004()
2042 CK(mbfl_filt_conv_illegal_output(c, filter)); in mbfl_filt_conv_wchar_jis2004()
2048 static int mbfl_filt_conv_wchar_jis2004_flush(mbfl_convert_filter *filter) in mbfl_filt_conv_wchar_jis2004_flush() argument
2052 k = filter->cache; in mbfl_filt_conv_wchar_jis2004_flush()
2053 filter->cache = 0; in mbfl_filt_conv_wchar_jis2004_flush()
2055 if (filter->status == 1 && k >= 0 && k <= jisx0213_u2_tbl_len) { in mbfl_filt_conv_wchar_jis2004_flush()
2058 if (filter->to->no_encoding == mbfl_no_encoding_sjis2004) { in mbfl_filt_conv_wchar_jis2004_flush()
2062 } else if (filter->to->no_encoding == mbfl_no_encoding_eucjp2004) { in mbfl_filt_conv_wchar_jis2004_flush()
2068 if ((filter->status & 0xff00) != 0x200) { in mbfl_filt_conv_wchar_jis2004_flush()
2069 CK((*filter->output_function)(0x1b, filter->data)); /* ESC */ in mbfl_filt_conv_wchar_jis2004_flush()
2070 CK((*filter->output_function)('$', filter->data)); in mbfl_filt_conv_wchar_jis2004_flush()
2071 CK((*filter->output_function)('(', filter->data)); in mbfl_filt_conv_wchar_jis2004_flush()
2072 CK((*filter->output_function)('Q', filter->data)); in mbfl_filt_conv_wchar_jis2004_flush()
2074 filter->status = 0x200; in mbfl_filt_conv_wchar_jis2004_flush()
2077 CK((*filter->output_function)(s1, filter->data)); in mbfl_filt_conv_wchar_jis2004_flush()
2078 CK((*filter->output_function)(s2, filter->data)); in mbfl_filt_conv_wchar_jis2004_flush()
2084 if (filter->status & 0xff00) { in mbfl_filt_conv_wchar_jis2004_flush()
2085 CK((*filter->output_function)(0x1b, filter->data)); /* ESC */ in mbfl_filt_conv_wchar_jis2004_flush()
2086 CK((*filter->output_function)('(', filter->data)); in mbfl_filt_conv_wchar_jis2004_flush()
2087 CK((*filter->output_function)('B', filter->data)); in mbfl_filt_conv_wchar_jis2004_flush()
2090 filter->status = 0; in mbfl_filt_conv_wchar_jis2004_flush()
2092 if (filter->flush_function) { in mbfl_filt_conv_wchar_jis2004_flush()
2093 return (*filter->flush_function)(filter->data); in mbfl_filt_conv_wchar_jis2004_flush()
2374 static int mbfl_filt_conv_cp5022x_wchar(int c, mbfl_convert_filter *filter) in mbfl_filt_conv_cp5022x_wchar() argument
2379 switch (filter->status & 0xf) { in mbfl_filt_conv_cp5022x_wchar()
2387 filter->status += 2; in mbfl_filt_conv_cp5022x_wchar()
2389 filter->status = 0x20; in mbfl_filt_conv_cp5022x_wchar()
2391 filter->status = 0; in mbfl_filt_conv_cp5022x_wchar()
2392 } else if (filter->status == 0x10 && c == 0x5c) { /* YEN SIGN */ in mbfl_filt_conv_cp5022x_wchar()
2393 CK((*filter->output_function)(0xa5, filter->data)); in mbfl_filt_conv_cp5022x_wchar()
2394 } else if (filter->status == 0x10 && c == 0x7e) { /* OVER LINE */ in mbfl_filt_conv_cp5022x_wchar()
2395 CK((*filter->output_function)(0x203e, filter->data)); in mbfl_filt_conv_cp5022x_wchar()
2396 } else if (filter->status == 0x20 && c > 0x20 && c < 0x60) { /* kana */ in mbfl_filt_conv_cp5022x_wchar()
2397 CK((*filter->output_function)(0xff40 + c, filter->data)); in mbfl_filt_conv_cp5022x_wchar()
2398 …} else if ((filter->status == 0x80 || filter->status == 0x90) && c > 0x20 && c <= 0x97) { /* kanji… in mbfl_filt_conv_cp5022x_wchar()
2399 filter->cache = c; in mbfl_filt_conv_cp5022x_wchar()
2400 filter->status += 1; in mbfl_filt_conv_cp5022x_wchar()
2402 CK((*filter->output_function)(c, filter->data)); in mbfl_filt_conv_cp5022x_wchar()
2404 CK((*filter->output_function)(0xfec0 + c, filter->data)); in mbfl_filt_conv_cp5022x_wchar()
2406 CK((*filter->output_function)(MBFL_BAD_INPUT, filter->data)); in mbfl_filt_conv_cp5022x_wchar()
2413 filter->status &= ~0xf; in mbfl_filt_conv_cp5022x_wchar()
2414 c1 = filter->cache; in mbfl_filt_conv_cp5022x_wchar()
2417 if (filter->status == 0x80) { in mbfl_filt_conv_cp5022x_wchar()
2447 CK((*filter->output_function)(w, filter->data)); in mbfl_filt_conv_cp5022x_wchar()
2449 CK((*filter->output_function)(MBFL_BAD_INPUT, filter->data)); in mbfl_filt_conv_cp5022x_wchar()
2461 filter->status++; in mbfl_filt_conv_cp5022x_wchar()
2463 filter->status += 3; in mbfl_filt_conv_cp5022x_wchar()
2465 filter->status &= ~0xf; in mbfl_filt_conv_cp5022x_wchar()
2466 CK((*filter->output_function)(MBFL_BAD_INPUT, filter->data)); in mbfl_filt_conv_cp5022x_wchar()
2479 filter->status = 0x80; in mbfl_filt_conv_cp5022x_wchar()
2481 filter->status++; in mbfl_filt_conv_cp5022x_wchar()
2483 filter->status &= ~0xf; in mbfl_filt_conv_cp5022x_wchar()
2484 CK((*filter->output_function)(MBFL_BAD_INPUT, filter->data)); in mbfl_filt_conv_cp5022x_wchar()
2485 CK((*filter->output_function)(0x24, filter->data)); in mbfl_filt_conv_cp5022x_wchar()
2498 filter->status = 0x80; in mbfl_filt_conv_cp5022x_wchar()
2500 filter->status = 0x90; in mbfl_filt_conv_cp5022x_wchar()
2502 filter->status &= ~0xf; in mbfl_filt_conv_cp5022x_wchar()
2503 CK((*filter->output_function)(MBFL_BAD_INPUT, filter->data)); in mbfl_filt_conv_cp5022x_wchar()
2504 CK((*filter->output_function)(0x24, filter->data)); in mbfl_filt_conv_cp5022x_wchar()
2505 CK((*filter->output_function)(0x28, filter->data)); in mbfl_filt_conv_cp5022x_wchar()
2518 filter->status = 0; in mbfl_filt_conv_cp5022x_wchar()
2520 filter->status = 0x10; in mbfl_filt_conv_cp5022x_wchar()
2522 filter->status = 0x20; in mbfl_filt_conv_cp5022x_wchar()
2524 filter->status &= ~0xf; in mbfl_filt_conv_cp5022x_wchar()
2525 CK((*filter->output_function)(MBFL_BAD_INPUT, filter->data)); in mbfl_filt_conv_cp5022x_wchar()
2526 CK((*filter->output_function)(0x28, filter->data)); in mbfl_filt_conv_cp5022x_wchar()
2537 static int mbfl_filt_conv_cp5022x_wchar_flush(mbfl_convert_filter *filter) in mbfl_filt_conv_cp5022x_wchar_flush() argument
2539 if (filter->status & 0xF) { in mbfl_filt_conv_cp5022x_wchar_flush()
2542 CK((*filter->output_function)(MBFL_BAD_INPUT, filter->data)); in mbfl_filt_conv_cp5022x_wchar_flush()
2544 filter->status = 0; in mbfl_filt_conv_cp5022x_wchar_flush()
2546 if (filter->flush_function) { in mbfl_filt_conv_cp5022x_wchar_flush()
2547 (*filter->flush_function)(filter->data); in mbfl_filt_conv_cp5022x_wchar_flush()
2785 static int mbfl_filt_conv_wchar_cp50221(int c, mbfl_convert_filter *filter);
2787 static int mbfl_filt_conv_wchar_cp50220(int c, mbfl_convert_filter *filter) in mbfl_filt_conv_wchar_cp50220() argument
2792 if (filter->cache) { in mbfl_filt_conv_wchar_cp50220()
2793 int s = mb_convert_kana_codepoint(filter->cache, c, &consumed, NULL, mode); in mbfl_filt_conv_wchar_cp50220()
2794 filter->cache = consumed ? 0 : c; in mbfl_filt_conv_wchar_cp50220()
2797 filter->filter_function = mbfl_filt_conv_wchar_cp50221; in mbfl_filt_conv_wchar_cp50220()
2798 mbfl_filt_conv_wchar_cp50221(s, filter); in mbfl_filt_conv_wchar_cp50220()
2799 filter->filter_function = mbfl_filt_conv_wchar_cp50220; in mbfl_filt_conv_wchar_cp50220()
2801 (*filter->output_function)(0, filter->data); in mbfl_filt_conv_wchar_cp50220()
2806 (*filter->output_function)(0, filter->data); in mbfl_filt_conv_wchar_cp50220()
2808 filter->cache = c; in mbfl_filt_conv_wchar_cp50220()
2814 static int mbfl_filt_conv_any_jis_flush(mbfl_convert_filter *filter) in mbfl_filt_conv_any_jis_flush() argument
2817 if ((filter->status & 0xff00) != 0) { in mbfl_filt_conv_any_jis_flush()
2818 CK((*filter->output_function)(0x1b, filter->data)); /* ESC */ in mbfl_filt_conv_any_jis_flush()
2819 CK((*filter->output_function)(0x28, filter->data)); /* '(' */ in mbfl_filt_conv_any_jis_flush()
2820 CK((*filter->output_function)(0x42, filter->data)); /* 'B' */ in mbfl_filt_conv_any_jis_flush()
2822 filter->status = 0; in mbfl_filt_conv_any_jis_flush()
2824 if (filter->flush_function != NULL) { in mbfl_filt_conv_any_jis_flush()
2825 return (*filter->flush_function)(filter->data); in mbfl_filt_conv_any_jis_flush()
2831 static int mbfl_filt_conv_wchar_cp50220_flush(mbfl_convert_filter *filter) in mbfl_filt_conv_wchar_cp50220_flush() argument
2835 if (filter->cache) { in mbfl_filt_conv_wchar_cp50220_flush()
2836 int s = mb_convert_kana_codepoint(filter->cache, 0, NULL, NULL, mode); in mbfl_filt_conv_wchar_cp50220_flush()
2837 filter->filter_function = mbfl_filt_conv_wchar_cp50221; in mbfl_filt_conv_wchar_cp50220_flush()
2838 mbfl_filt_conv_wchar_cp50221(s, filter); in mbfl_filt_conv_wchar_cp50220_flush()
2839 filter->filter_function = mbfl_filt_conv_wchar_cp50220; in mbfl_filt_conv_wchar_cp50220_flush()
2840 filter->cache = 0; in mbfl_filt_conv_wchar_cp50220_flush()
2843 return mbfl_filt_conv_any_jis_flush(filter); in mbfl_filt_conv_wchar_cp50220_flush()
2846 static int mbfl_filt_conv_wchar_cp50221(int c, mbfl_convert_filter *filter) in mbfl_filt_conv_wchar_cp50221() argument
2928 if ((filter->status & 0xff00) != 0) { in mbfl_filt_conv_wchar_cp50221()
2929 CK((*filter->output_function)(0x1b, filter->data)); /* ESC */ in mbfl_filt_conv_wchar_cp50221()
2930 CK((*filter->output_function)(0x28, filter->data)); /* '(' */ in mbfl_filt_conv_wchar_cp50221()
2931 CK((*filter->output_function)(0x42, filter->data)); /* 'B' */ in mbfl_filt_conv_wchar_cp50221()
2932 filter->status = 0; in mbfl_filt_conv_wchar_cp50221()
2934 CK((*filter->output_function)(s, filter->data)); in mbfl_filt_conv_wchar_cp50221()
2936 if ((filter->status & 0xff00) != 0x500) { in mbfl_filt_conv_wchar_cp50221()
2937 CK((*filter->output_function)(0x1b, filter->data)); /* ESC */ in mbfl_filt_conv_wchar_cp50221()
2938 CK((*filter->output_function)(0x28, filter->data)); /* '(' */ in mbfl_filt_conv_wchar_cp50221()
2939 CK((*filter->output_function)(0x49, filter->data)); /* 'I' */ in mbfl_filt_conv_wchar_cp50221()
2940 filter->status = 0x500; in mbfl_filt_conv_wchar_cp50221()
2942 CK((*filter->output_function)(s - 0x80, filter->data)); in mbfl_filt_conv_wchar_cp50221()
2944 if ((filter->status & 0xff00) != 0x200) { in mbfl_filt_conv_wchar_cp50221()
2945 CK((*filter->output_function)(0x1b, filter->data)); /* ESC */ in mbfl_filt_conv_wchar_cp50221()
2946 CK((*filter->output_function)(0x24, filter->data)); /* '$' */ in mbfl_filt_conv_wchar_cp50221()
2947 CK((*filter->output_function)(0x42, filter->data)); /* 'B' */ in mbfl_filt_conv_wchar_cp50221()
2948 filter->status = 0x200; in mbfl_filt_conv_wchar_cp50221()
2950 CK((*filter->output_function)((s >> 8) & 0xff, filter->data)); in mbfl_filt_conv_wchar_cp50221()
2951 CK((*filter->output_function)(s & 0xff, filter->data)); in mbfl_filt_conv_wchar_cp50221()
2953 CK(mbfl_filt_conv_illegal_output(c, filter)); in mbfl_filt_conv_wchar_cp50221()
2955 if ((filter->status & 0xff00) != 0x400) { in mbfl_filt_conv_wchar_cp50221()
2956 CK((*filter->output_function)(0x1b, filter->data)); /* ESC */ in mbfl_filt_conv_wchar_cp50221()
2957 CK((*filter->output_function)(0x28, filter->data)); /* '(' */ in mbfl_filt_conv_wchar_cp50221()
2958 CK((*filter->output_function)(0x4a, filter->data)); /* 'J' */ in mbfl_filt_conv_wchar_cp50221()
2960 filter->status = 0x400; in mbfl_filt_conv_wchar_cp50221()
2961 CK((*filter->output_function)(s & 0x7f, filter->data)); in mbfl_filt_conv_wchar_cp50221()
2964 CK(mbfl_filt_conv_illegal_output(c, filter)); in mbfl_filt_conv_wchar_cp50221()
2970 static int mbfl_filt_conv_wchar_cp50222(int c, mbfl_convert_filter *filter) in mbfl_filt_conv_wchar_cp50222() argument
3042 if ((filter->status & 0xff00) == 0x500) { in mbfl_filt_conv_wchar_cp50222()
3043 CK((*filter->output_function)(0x0f, filter->data)); /* SO */ in mbfl_filt_conv_wchar_cp50222()
3044 filter->status = 0; in mbfl_filt_conv_wchar_cp50222()
3045 } else if ((filter->status & 0xff00) != 0) { in mbfl_filt_conv_wchar_cp50222()
3046 CK((*filter->output_function)(0x1b, filter->data)); /* ESC */ in mbfl_filt_conv_wchar_cp50222()
3047 CK((*filter->output_function)(0x28, filter->data)); /* '(' */ in mbfl_filt_conv_wchar_cp50222()
3048 CK((*filter->output_function)(0x42, filter->data)); /* 'B' */ in mbfl_filt_conv_wchar_cp50222()
3049 filter->status = 0; in mbfl_filt_conv_wchar_cp50222()
3051 CK((*filter->output_function)(s, filter->data)); in mbfl_filt_conv_wchar_cp50222()
3053 if ((filter->status & 0xff00) != 0x500) { in mbfl_filt_conv_wchar_cp50222()
3054 CK((*filter->output_function)(0x0e, filter->data)); /* SI */ in mbfl_filt_conv_wchar_cp50222()
3055 filter->status = 0x500; in mbfl_filt_conv_wchar_cp50222()
3057 CK((*filter->output_function)(s - 0x80, filter->data)); in mbfl_filt_conv_wchar_cp50222()
3059 if ((filter->status & 0xff00) == 0x500) { in mbfl_filt_conv_wchar_cp50222()
3060 CK((*filter->output_function)(0x0f, filter->data)); /* SO */ in mbfl_filt_conv_wchar_cp50222()
3061 filter->status = 0; in mbfl_filt_conv_wchar_cp50222()
3063 if ((filter->status & 0xff00) != 0x200) { in mbfl_filt_conv_wchar_cp50222()
3064 CK((*filter->output_function)(0x1b, filter->data)); /* ESC */ in mbfl_filt_conv_wchar_cp50222()
3065 CK((*filter->output_function)(0x24, filter->data)); /* '$' */ in mbfl_filt_conv_wchar_cp50222()
3066 CK((*filter->output_function)(0x42, filter->data)); /* 'B' */ in mbfl_filt_conv_wchar_cp50222()
3067 filter->status = 0x200; in mbfl_filt_conv_wchar_cp50222()
3069 CK((*filter->output_function)((s >> 8) & 0xff, filter->data)); in mbfl_filt_conv_wchar_cp50222()
3070 CK((*filter->output_function)(s & 0xff, filter->data)); in mbfl_filt_conv_wchar_cp50222()
3072 CK(mbfl_filt_conv_illegal_output(c, filter)); in mbfl_filt_conv_wchar_cp50222()
3074 if ((filter->status & 0xff00) == 0x500) { in mbfl_filt_conv_wchar_cp50222()
3075 CK((*filter->output_function)(0x0f, filter->data)); /* SO */ in mbfl_filt_conv_wchar_cp50222()
3076 filter->status = 0; in mbfl_filt_conv_wchar_cp50222()
3078 if ((filter->status & 0xff00) != 0x400) { in mbfl_filt_conv_wchar_cp50222()
3079 CK((*filter->output_function)(0x1b, filter->data)); /* ESC */ in mbfl_filt_conv_wchar_cp50222()
3080 CK((*filter->output_function)(0x28, filter->data)); /* '(' */ in mbfl_filt_conv_wchar_cp50222()
3081 CK((*filter->output_function)(0x4a, filter->data)); /* 'J' */ in mbfl_filt_conv_wchar_cp50222()
3083 filter->status = 0x400; in mbfl_filt_conv_wchar_cp50222()
3084 CK((*filter->output_function)(s & 0x7f, filter->data)); in mbfl_filt_conv_wchar_cp50222()
3087 CK(mbfl_filt_conv_illegal_output(c, filter)); in mbfl_filt_conv_wchar_cp50222()
3093 static int mbfl_filt_conv_wchar_cp50222_flush(mbfl_convert_filter *filter) in mbfl_filt_conv_wchar_cp50222_flush() argument
3096 if ((filter->status & 0xff00) == 0x500) { in mbfl_filt_conv_wchar_cp50222_flush()
3097 CK((*filter->output_function)(0x0f, filter->data)); /* SO */ in mbfl_filt_conv_wchar_cp50222_flush()
3098 } else if ((filter->status & 0xff00) != 0) { in mbfl_filt_conv_wchar_cp50222_flush()
3099 CK((*filter->output_function)(0x1b, filter->data)); /* ESC */ in mbfl_filt_conv_wchar_cp50222_flush()
3100 CK((*filter->output_function)(0x28, filter->data)); /* '(' */ in mbfl_filt_conv_wchar_cp50222_flush()
3101 CK((*filter->output_function)(0x42, filter->data)); /* 'B' */ in mbfl_filt_conv_wchar_cp50222_flush()
3103 filter->status = 0; in mbfl_filt_conv_wchar_cp50222_flush()
3105 if (filter->flush_function) { in mbfl_filt_conv_wchar_cp50222_flush()
3106 (*filter->flush_function)(filter->data); in mbfl_filt_conv_wchar_cp50222_flush()
3533 static int mbfl_filt_conv_2022jpms_wchar(int c, mbfl_convert_filter *filter) in mbfl_filt_conv_2022jpms_wchar() argument
3537 switch (filter->status & 0xF) { in mbfl_filt_conv_2022jpms_wchar()
3540 filter->status += 2; in mbfl_filt_conv_2022jpms_wchar()
3541 } else if (filter->status == JISX0201_KANA && c > 0x20 && c < 0x60) { in mbfl_filt_conv_2022jpms_wchar()
3542 CK((*filter->output_function)(0xFF40 + c, filter->data)); in mbfl_filt_conv_2022jpms_wchar()
3543 } else if ((filter->status == JISX0208_KANJI || filter->status == UDC) && c > 0x20 && c < 0x80) { in mbfl_filt_conv_2022jpms_wchar()
3544 filter->cache = c; in mbfl_filt_conv_2022jpms_wchar()
3545 filter->status += 1; in mbfl_filt_conv_2022jpms_wchar()
3547 CK((*filter->output_function)(c, filter->data)); in mbfl_filt_conv_2022jpms_wchar()
3549 CK((*filter->output_function)(0xFEC0 + c, filter->data)); in mbfl_filt_conv_2022jpms_wchar()
3551 CK((*filter->output_function)(MBFL_BAD_INPUT, filter->data)); in mbfl_filt_conv_2022jpms_wchar()
3558 filter->status &= ~0xF; in mbfl_filt_conv_2022jpms_wchar()
3559 c1 = filter->cache; in mbfl_filt_conv_2022jpms_wchar()
3562 if (filter->status == JISX0208_KANJI) { in mbfl_filt_conv_2022jpms_wchar()
3601 CK((*filter->output_function)(w, filter->data)); in mbfl_filt_conv_2022jpms_wchar()
3603 CK((*filter->output_function)(MBFL_BAD_INPUT, filter->data)); in mbfl_filt_conv_2022jpms_wchar()
3610 filter->status++; in mbfl_filt_conv_2022jpms_wchar()
3612 filter->status += 3; in mbfl_filt_conv_2022jpms_wchar()
3614 filter->status &= ~0xF; in mbfl_filt_conv_2022jpms_wchar()
3615 CK((*filter->output_function)(MBFL_BAD_INPUT, filter->data)); in mbfl_filt_conv_2022jpms_wchar()
3622 filter->status = JISX0208_KANJI; in mbfl_filt_conv_2022jpms_wchar()
3624 filter->status++; in mbfl_filt_conv_2022jpms_wchar()
3626 filter->status &= ~0xF; in mbfl_filt_conv_2022jpms_wchar()
3627 CK((*filter->output_function)(MBFL_BAD_INPUT, filter->data)); in mbfl_filt_conv_2022jpms_wchar()
3634 filter->status = JISX0208_KANJI; in mbfl_filt_conv_2022jpms_wchar()
3636 filter->status = UDC; in mbfl_filt_conv_2022jpms_wchar()
3638 filter->status &= ~0xF; in mbfl_filt_conv_2022jpms_wchar()
3639 CK((*filter->output_function)(MBFL_BAD_INPUT, filter->data)); in mbfl_filt_conv_2022jpms_wchar()
3646 filter->status = 0; in mbfl_filt_conv_2022jpms_wchar()
3648 filter->status = JISX0201_KANA; in mbfl_filt_conv_2022jpms_wchar()
3650 filter->status &= ~0xF; in mbfl_filt_conv_2022jpms_wchar()
3651 CK((*filter->output_function)(MBFL_BAD_INPUT, filter->data)); in mbfl_filt_conv_2022jpms_wchar()
3658 static int mbfl_filt_conv_2022jpms_wchar_flush(mbfl_convert_filter *filter) in mbfl_filt_conv_2022jpms_wchar_flush() argument
3660 if (filter->status & 0xF) { in mbfl_filt_conv_2022jpms_wchar_flush()
3661 (*filter->output_function)(MBFL_BAD_INPUT, filter->data); in mbfl_filt_conv_2022jpms_wchar_flush()
3663 filter->status = 0; in mbfl_filt_conv_2022jpms_wchar_flush()
3665 if (filter->flush_function) { in mbfl_filt_conv_2022jpms_wchar_flush()
3666 (*filter->flush_function)(filter->data); in mbfl_filt_conv_2022jpms_wchar_flush()
3691 static int mbfl_filt_conv_wchar_2022jpms(int c, mbfl_convert_filter *filter) in mbfl_filt_conv_wchar_2022jpms() argument
3754 if (filter->status & 0xFF00) { in mbfl_filt_conv_wchar_2022jpms()
3755 CK((*filter->output_function)(0x1B, filter->data)); /* ESC */ in mbfl_filt_conv_wchar_2022jpms()
3756 CK((*filter->output_function)('(', filter->data)); in mbfl_filt_conv_wchar_2022jpms()
3757 CK((*filter->output_function)('B', filter->data)); in mbfl_filt_conv_wchar_2022jpms()
3759 CK((*filter->output_function)(s1, filter->data)); in mbfl_filt_conv_wchar_2022jpms()
3760 filter->status = 0; in mbfl_filt_conv_wchar_2022jpms()
3762 if ((filter->status & 0xFF00) != 0x100) { in mbfl_filt_conv_wchar_2022jpms()
3763 CK((*filter->output_function)(0x1B, filter->data)); /* ESC */ in mbfl_filt_conv_wchar_2022jpms()
3764 CK((*filter->output_function)('(', filter->data)); in mbfl_filt_conv_wchar_2022jpms()
3765 CK((*filter->output_function)('I', filter->data)); in mbfl_filt_conv_wchar_2022jpms()
3767 filter->status = 0x100; in mbfl_filt_conv_wchar_2022jpms()
3768 CK((*filter->output_function)(s1 & 0x7F, filter->data)); in mbfl_filt_conv_wchar_2022jpms()
3770 if ((filter->status & 0xFF00) != 0x200) { in mbfl_filt_conv_wchar_2022jpms()
3771 CK((*filter->output_function)(0x1B, filter->data)); /* ESC */ in mbfl_filt_conv_wchar_2022jpms()
3772 CK((*filter->output_function)('$', filter->data)); in mbfl_filt_conv_wchar_2022jpms()
3773 CK((*filter->output_function)('B', filter->data)); in mbfl_filt_conv_wchar_2022jpms()
3775 filter->status = 0x200; in mbfl_filt_conv_wchar_2022jpms()
3776 CK((*filter->output_function)((s1 >> 8) & 0xFF, filter->data)); in mbfl_filt_conv_wchar_2022jpms()
3777 CK((*filter->output_function)(s1 & 0x7F, filter->data)); in mbfl_filt_conv_wchar_2022jpms()
3779 if ((filter->status & 0xFF00) != 0x800) { in mbfl_filt_conv_wchar_2022jpms()
3780 CK((*filter->output_function)(0x1B, filter->data)); /* ESC */ in mbfl_filt_conv_wchar_2022jpms()
3781 CK((*filter->output_function)('$', filter->data)); in mbfl_filt_conv_wchar_2022jpms()
3782 CK((*filter->output_function)('(', filter->data)); in mbfl_filt_conv_wchar_2022jpms()
3783 CK((*filter->output_function)('?', filter->data)); in mbfl_filt_conv_wchar_2022jpms()
3785 filter->status = 0x800; in mbfl_filt_conv_wchar_2022jpms()
3786 CK((*filter->output_function)(((s1 >> 8) - 0x5E) & 0x7F, filter->data)); in mbfl_filt_conv_wchar_2022jpms()
3787 CK((*filter->output_function)(s1 & 0x7F, filter->data)); in mbfl_filt_conv_wchar_2022jpms()
3790 CK(mbfl_filt_conv_illegal_output(c, filter)); in mbfl_filt_conv_wchar_2022jpms()
3796 static int mbfl_filt_conv_any_2022jpms_flush(mbfl_convert_filter *filter) in mbfl_filt_conv_any_2022jpms_flush() argument
3799 if ((filter->status & 0xFF00) != 0) { in mbfl_filt_conv_any_2022jpms_flush()
3800 CK((*filter->output_function)(0x1B, filter->data)); /* ESC */ in mbfl_filt_conv_any_2022jpms_flush()
3801 CK((*filter->output_function)('(', filter->data)); in mbfl_filt_conv_any_2022jpms_flush()
3802 CK((*filter->output_function)('B', filter->data)); in mbfl_filt_conv_any_2022jpms_flush()
3804 filter->status = 0; in mbfl_filt_conv_any_2022jpms_flush()
3806 if (filter->flush_function) { in mbfl_filt_conv_any_2022jpms_flush()
3807 (*filter->flush_function)(filter->data); in mbfl_filt_conv_any_2022jpms_flush()
4031 static int mbfl_filt_conv_2022kr_wchar(int c, mbfl_convert_filter *filter) in mbfl_filt_conv_2022kr_wchar() argument
4035 switch (filter->status & 0xf) { in mbfl_filt_conv_2022kr_wchar()
4040 filter->status += 2; in mbfl_filt_conv_2022kr_wchar()
4042 filter->status = 0; in mbfl_filt_conv_2022kr_wchar()
4044 filter->status = 0x10; in mbfl_filt_conv_2022kr_wchar()
4045 } else if ((filter->status & 0x10) && c > 0x20 && c < 0x7f) { in mbfl_filt_conv_2022kr_wchar()
4047 filter->cache = c; in mbfl_filt_conv_2022kr_wchar()
4048 filter->status = 0x11; in mbfl_filt_conv_2022kr_wchar()
4049 } else if ((filter->status & 0x10) == 0 && c >= 0 && c < 0x80) { in mbfl_filt_conv_2022kr_wchar()
4051 CK((*filter->output_function)(c, filter->data)); in mbfl_filt_conv_2022kr_wchar()
4053 CK((*filter->output_function)(MBFL_BAD_INPUT, filter->data)); in mbfl_filt_conv_2022kr_wchar()
4058 filter->status = 0x10; in mbfl_filt_conv_2022kr_wchar()
4059 int c1 = filter->cache; in mbfl_filt_conv_2022kr_wchar()
4087 CK((*filter->output_function)(w, filter->data)); in mbfl_filt_conv_2022kr_wchar()
4089 CK((*filter->output_function)(MBFL_BAD_INPUT, filter->data)); in mbfl_filt_conv_2022kr_wchar()
4095 filter->status++; in mbfl_filt_conv_2022kr_wchar()
4097 filter->status &= ~0xF; in mbfl_filt_conv_2022kr_wchar()
4098 CK((*filter->output_function)(MBFL_BAD_INPUT, filter->data)); in mbfl_filt_conv_2022kr_wchar()
4104 filter->status++; in mbfl_filt_conv_2022kr_wchar()
4106 filter->status &= ~0xF; in mbfl_filt_conv_2022kr_wchar()
4107 CK((*filter->output_function)(MBFL_BAD_INPUT, filter->data)); in mbfl_filt_conv_2022kr_wchar()
4112 filter->status = 0; in mbfl_filt_conv_2022kr_wchar()
4114 CK((*filter->output_function)(MBFL_BAD_INPUT, filter->data)); in mbfl_filt_conv_2022kr_wchar()
4124 static int mbfl_filt_conv_2022kr_wchar_flush(mbfl_convert_filter *filter) in mbfl_filt_conv_2022kr_wchar_flush() argument
4126 if (filter->status & 0xF) { in mbfl_filt_conv_2022kr_wchar_flush()
4128 CK((*filter->output_function)(MBFL_BAD_INPUT, filter->data)); in mbfl_filt_conv_2022kr_wchar_flush()
4130 filter->status = 0; in mbfl_filt_conv_2022kr_wchar_flush()
4132 if (filter->flush_function) { in mbfl_filt_conv_2022kr_wchar_flush()
4133 (*filter->flush_function)(filter->data); in mbfl_filt_conv_2022kr_wchar_flush()
4139 static int mbfl_filt_conv_wchar_2022kr(int c, mbfl_convert_filter *filter) in mbfl_filt_conv_wchar_2022kr() argument
4143 if ((filter->status & 0x100) == 0) { in mbfl_filt_conv_wchar_2022kr()
4144 CK((*filter->output_function)(0x1b, filter->data)); /* ESC */ in mbfl_filt_conv_wchar_2022kr()
4145 CK((*filter->output_function)('$', filter->data)); in mbfl_filt_conv_wchar_2022kr()
4146 CK((*filter->output_function)(')', filter->data)); in mbfl_filt_conv_wchar_2022kr()
4147 CK((*filter->output_function)('C', filter->data)); in mbfl_filt_conv_wchar_2022kr()
4148 filter->status |= 0x100; in mbfl_filt_conv_wchar_2022kr()
4188 if (filter->status & 0x10) { in mbfl_filt_conv_wchar_2022kr()
4189 CK((*filter->output_function)(0x0f, filter->data)); /* shift in */ in mbfl_filt_conv_wchar_2022kr()
4190 filter->status &= ~0x10; in mbfl_filt_conv_wchar_2022kr()
4192 CK((*filter->output_function)(s, filter->data)); in mbfl_filt_conv_wchar_2022kr()
4194 if ((filter->status & 0x10) == 0) { in mbfl_filt_conv_wchar_2022kr()
4195 CK((*filter->output_function)(0x0e, filter->data)); /* shift out */ in mbfl_filt_conv_wchar_2022kr()
4196 filter->status |= 0x10; in mbfl_filt_conv_wchar_2022kr()
4198 CK((*filter->output_function)((s >> 8) & 0xff, filter->data)); in mbfl_filt_conv_wchar_2022kr()
4199 CK((*filter->output_function)(s & 0xff, filter->data)); in mbfl_filt_conv_wchar_2022kr()
4202 CK(mbfl_filt_conv_illegal_output(c, filter)); in mbfl_filt_conv_wchar_2022kr()
4208 static int mbfl_filt_conv_any_2022kr_flush(mbfl_convert_filter *filter) in mbfl_filt_conv_any_2022kr_flush() argument
4210 if (filter->status & 0xF) { in mbfl_filt_conv_any_2022kr_flush()
4212 (*filter->output_function)(MBFL_BAD_INPUT, filter->data); in mbfl_filt_conv_any_2022kr_flush()
4215 if (filter->status & 0x10) { in mbfl_filt_conv_any_2022kr_flush()
4216 CK((*filter->output_function)(0x0f, filter->data)); /* shift in */ in mbfl_filt_conv_any_2022kr_flush()
4219 filter->status = filter->cache = 0; in mbfl_filt_conv_any_2022kr_flush()
4221 if (filter->flush_function) { in mbfl_filt_conv_any_2022kr_flush()
4222 return (*filter->flush_function)(filter->data); in mbfl_filt_conv_any_2022kr_flush()
4723 static int mbfl_filt_conv_sjis_wchar(int c, mbfl_convert_filter *filter) in mbfl_filt_conv_sjis_wchar() argument
4727 switch (filter->status) { in mbfl_filt_conv_sjis_wchar()
4730 CK((*filter->output_function)(c, filter->data)); in mbfl_filt_conv_sjis_wchar()
4732 CK((*filter->output_function)(0xFEC0 + c, filter->data)); in mbfl_filt_conv_sjis_wchar()
4734 filter->status = 1; in mbfl_filt_conv_sjis_wchar()
4735 filter->cache = c; in mbfl_filt_conv_sjis_wchar()
4737 CK((*filter->output_function)(MBFL_BAD_INPUT, filter->data)); in mbfl_filt_conv_sjis_wchar()
4742 filter->status = 0; in mbfl_filt_conv_sjis_wchar()
4743 int c1 = filter->cache; in mbfl_filt_conv_sjis_wchar()
4754 CK((*filter->output_function)(w, filter->data)); in mbfl_filt_conv_sjis_wchar()
4756 CK((*filter->output_function)(MBFL_BAD_INPUT, filter->data)); in mbfl_filt_conv_sjis_wchar()
4763 static int mbfl_filt_conv_sjis_wchar_flush(mbfl_convert_filter *filter) in mbfl_filt_conv_sjis_wchar_flush() argument
4765 if (filter->status && filter->status != 4) { in mbfl_filt_conv_sjis_wchar_flush()
4766 (*filter->output_function)(MBFL_BAD_INPUT, filter->data); in mbfl_filt_conv_sjis_wchar_flush()
4768 filter->status = 0; in mbfl_filt_conv_sjis_wchar_flush()
4770 if (filter->flush_function) { in mbfl_filt_conv_sjis_wchar_flush()
4771 (*filter->flush_function)(filter->data); in mbfl_filt_conv_sjis_wchar_flush()
4777 static int mbfl_filt_conv_wchar_sjis(int c, mbfl_convert_filter *filter) in mbfl_filt_conv_wchar_sjis() argument
4818 CK((*filter->output_function)(s1, filter->data)); in mbfl_filt_conv_wchar_sjis()
4823 CK((*filter->output_function)(s1, filter->data)); in mbfl_filt_conv_wchar_sjis()
4824 CK((*filter->output_function)(s2, filter->data)); in mbfl_filt_conv_wchar_sjis()
4827 CK(mbfl_filt_conv_illegal_output(c, filter)); in mbfl_filt_conv_wchar_sjis()
4958 static int mbfl_filt_conv_sjis_mac_wchar(int c, mbfl_convert_filter *filter) in mbfl_filt_conv_sjis_mac_wchar() argument
4963 switch (filter->status) { in mbfl_filt_conv_sjis_mac_wchar()
4966 CK((*filter->output_function)(c, filter->data)); in mbfl_filt_conv_sjis_mac_wchar()
4968 CK((*filter->output_function)(0xfec0 + c, filter->data)); in mbfl_filt_conv_sjis_mac_wchar()
4970 filter->status = 1; in mbfl_filt_conv_sjis_mac_wchar()
4971 filter->cache = c; in mbfl_filt_conv_sjis_mac_wchar()
4973 CK((*filter->output_function)(0x00a5, filter->data)); in mbfl_filt_conv_sjis_mac_wchar()
4975 CK((*filter->output_function)(0x005c, filter->data)); in mbfl_filt_conv_sjis_mac_wchar()
4977 CK((*filter->output_function)(0x00a0, filter->data)); in mbfl_filt_conv_sjis_mac_wchar()
4979 CK((*filter->output_function)(0x00a9, filter->data)); in mbfl_filt_conv_sjis_mac_wchar()
4981 CK((*filter->output_function)(0x2122, filter->data)); in mbfl_filt_conv_sjis_mac_wchar()
4983 CK((*filter->output_function)(0x2026, filter->data)); in mbfl_filt_conv_sjis_mac_wchar()
4984 CK((*filter->output_function)(0xf87f, filter->data)); in mbfl_filt_conv_sjis_mac_wchar()
4986 CK((*filter->output_function)(MBFL_BAD_INPUT, filter->data)); in mbfl_filt_conv_sjis_mac_wchar()
4991 filter->status = 0; in mbfl_filt_conv_sjis_mac_wchar()
4992 c1 = filter->cache; in mbfl_filt_conv_sjis_mac_wchar()
5039 CK((*filter->output_function)(code_tbl_m[i][j], filter->data)); in mbfl_filt_conv_sjis_mac_wchar()
5052 CK((*filter->output_function)(MBFL_BAD_INPUT, filter->data)); in mbfl_filt_conv_sjis_mac_wchar()
5068 CK((*filter->output_function)(w, filter->data)); in mbfl_filt_conv_sjis_mac_wchar()
5083 CK((*filter->output_function)(w, filter->data)); in mbfl_filt_conv_sjis_mac_wchar()
5085 CK((*filter->output_function)(MBFL_BAD_INPUT, filter->data)); in mbfl_filt_conv_sjis_mac_wchar()
5095 static int mbfl_filt_conv_wchar_sjis_mac(int c, mbfl_convert_filter *filter) in mbfl_filt_conv_wchar_sjis_mac() argument
5104 switch (filter->status) { in mbfl_filt_conv_wchar_sjis_mac()
5106 c1 = filter->cache; in mbfl_filt_conv_wchar_sjis_mac()
5107 filter->cache = filter->status = 0; in mbfl_filt_conv_wchar_sjis_mac()
5167 CK((*filter->output_function)(s1, filter->data)); in mbfl_filt_conv_wchar_sjis_mac()
5169 CK((*filter->output_function)((s1 >> 8) & 0xff, filter->data)); in mbfl_filt_conv_wchar_sjis_mac()
5170 CK((*filter->output_function)(s1 & 0xff, filter->data)); in mbfl_filt_conv_wchar_sjis_mac()
5173 CK(mbfl_filt_conv_illegal_output(c, filter)); in mbfl_filt_conv_wchar_sjis_mac()
5208 filter->status = 1; in mbfl_filt_conv_wchar_sjis_mac()
5209 filter->cache = c; in mbfl_filt_conv_wchar_sjis_mac()
5216 filter->status = 2; in mbfl_filt_conv_wchar_sjis_mac()
5217 filter->cache = c; in mbfl_filt_conv_wchar_sjis_mac()
5281 CK((*filter->output_function)(s1, filter->data)); in mbfl_filt_conv_wchar_sjis_mac()
5286 CK((*filter->output_function)(s1, filter->data)); in mbfl_filt_conv_wchar_sjis_mac()
5287 CK((*filter->output_function)(s2, filter->data)); in mbfl_filt_conv_wchar_sjis_mac()
5290 CK(mbfl_filt_conv_illegal_output(c, filter)); in mbfl_filt_conv_wchar_sjis_mac()
5295 c1 = filter->cache; in mbfl_filt_conv_wchar_sjis_mac()
5296 filter->cache = 0; in mbfl_filt_conv_wchar_sjis_mac()
5297 filter->status = 0; in mbfl_filt_conv_wchar_sjis_mac()
5301 filter->cache = c | 0x10000; in mbfl_filt_conv_wchar_sjis_mac()
5302 filter->status = 3; in mbfl_filt_conv_wchar_sjis_mac()
5309 filter->cache = c | 0x20000; in mbfl_filt_conv_wchar_sjis_mac()
5310 filter->status = 3; in mbfl_filt_conv_wchar_sjis_mac()
5317 filter->cache = c | 0x40000; in mbfl_filt_conv_wchar_sjis_mac()
5318 filter->status = 3; in mbfl_filt_conv_wchar_sjis_mac()
5324 if (filter->status == 0) { in mbfl_filt_conv_wchar_sjis_mac()
5326 CK(mbfl_filt_conv_illegal_output(c1, filter)); in mbfl_filt_conv_wchar_sjis_mac()
5327 return mbfl_filt_conv_wchar_sjis_mac(c, filter); in mbfl_filt_conv_wchar_sjis_mac()
5333 c1 = filter->cache & 0xffff; in mbfl_filt_conv_wchar_sjis_mac()
5334 mode = (filter->cache & 0xf0000) >> 16; in mbfl_filt_conv_wchar_sjis_mac()
5336 filter->cache = filter->status = 0; in mbfl_filt_conv_wchar_sjis_mac()
5350 CK((*filter->output_function)(s1, filter->data)); in mbfl_filt_conv_wchar_sjis_mac()
5351 CK((*filter->output_function)(s2, filter->data)); in mbfl_filt_conv_wchar_sjis_mac()
5353 CK(mbfl_filt_conv_illegal_output(0xf860, filter)); in mbfl_filt_conv_wchar_sjis_mac()
5354 CK(mbfl_filt_conv_illegal_output(c1, filter)); in mbfl_filt_conv_wchar_sjis_mac()
5355 CK(mbfl_filt_conv_illegal_output(c, filter)); in mbfl_filt_conv_wchar_sjis_mac()
5360 filter->cache = c | 0x20000; in mbfl_filt_conv_wchar_sjis_mac()
5361 filter->status = 4; in mbfl_filt_conv_wchar_sjis_mac()
5368 filter->cache = c | 0x40000; in mbfl_filt_conv_wchar_sjis_mac()
5369 filter->status = 4; in mbfl_filt_conv_wchar_sjis_mac()
5378 c1 = filter->cache & 0xffff; in mbfl_filt_conv_wchar_sjis_mac()
5379 mode = (filter->cache & 0xf0000) >> 16; in mbfl_filt_conv_wchar_sjis_mac()
5381 filter->cache = 0; in mbfl_filt_conv_wchar_sjis_mac()
5382 filter->status = 0; in mbfl_filt_conv_wchar_sjis_mac()
5396 CK((*filter->output_function)(s1, filter->data)); in mbfl_filt_conv_wchar_sjis_mac()
5397 CK((*filter->output_function)(s2, filter->data)); in mbfl_filt_conv_wchar_sjis_mac()
5399 CK(mbfl_filt_conv_illegal_output(0xf861, filter)); in mbfl_filt_conv_wchar_sjis_mac()
5402 CK(mbfl_filt_conv_illegal_output(code_tbl_m[i+5][2], filter)); in mbfl_filt_conv_wchar_sjis_mac()
5406 CK(mbfl_filt_conv_illegal_output(c1, filter)); in mbfl_filt_conv_wchar_sjis_mac()
5407 CK(mbfl_filt_conv_illegal_output(c, filter)); in mbfl_filt_conv_wchar_sjis_mac()
5412 filter->cache = c | 0x40000; in mbfl_filt_conv_wchar_sjis_mac()
5413 filter->status = 5; in mbfl_filt_conv_wchar_sjis_mac()
5422 c1 = filter->cache & 0xffff; in mbfl_filt_conv_wchar_sjis_mac()
5423 mode = (filter->cache & 0xf0000) >> 16; in mbfl_filt_conv_wchar_sjis_mac()
5425 filter->cache = filter->status = 0; in mbfl_filt_conv_wchar_sjis_mac()
5439 CK((*filter->output_function)(s1, filter->data)); in mbfl_filt_conv_wchar_sjis_mac()
5440 CK((*filter->output_function)(s2, filter->data)); in mbfl_filt_conv_wchar_sjis_mac()
5442 CK(mbfl_filt_conv_illegal_output(0xf862, filter)); in mbfl_filt_conv_wchar_sjis_mac()
5445 CK(mbfl_filt_conv_illegal_output( code_tbl_m[i+8][2], filter)); in mbfl_filt_conv_wchar_sjis_mac()
5446 CK(mbfl_filt_conv_illegal_output( code_tbl_m[i+8][3], filter)); in mbfl_filt_conv_wchar_sjis_mac()
5450 CK(mbfl_filt_conv_illegal_output(c1, filter)); in mbfl_filt_conv_wchar_sjis_mac()
5451 CK(mbfl_filt_conv_illegal_output(c, filter)); in mbfl_filt_conv_wchar_sjis_mac()
5462 static int mbfl_filt_conv_wchar_sjis_mac_flush(mbfl_convert_filter *filter) in mbfl_filt_conv_wchar_sjis_mac_flush() argument
5465 if (filter->status == 1 && filter->cache > 0) { in mbfl_filt_conv_wchar_sjis_mac_flush()
5466 c1 = filter->cache; in mbfl_filt_conv_wchar_sjis_mac_flush()
5474 CK((*filter->output_function)((s1 >> 8) & 0xff, filter->data)); in mbfl_filt_conv_wchar_sjis_mac_flush()
5475 CK((*filter->output_function)(s1 & 0xff, filter->data)); in mbfl_filt_conv_wchar_sjis_mac_flush()
5478 filter->cache = 0; in mbfl_filt_conv_wchar_sjis_mac_flush()
5479 filter->status = 0; in mbfl_filt_conv_wchar_sjis_mac_flush()
5481 if (filter->flush_function != NULL) { in mbfl_filt_conv_wchar_sjis_mac_flush()
5482 return (*filter->flush_function)(filter->data); in mbfl_filt_conv_wchar_sjis_mac_flush()
5934 int mbfilter_unicode2sjis_emoji_docomo(int c, int *s1, mbfl_convert_filter *filter) in mbfilter_unicode2sjis_emoji_docomo() argument
5942 if (filter->status == 1) { in mbfilter_unicode2sjis_emoji_docomo()
5943 int c1 = filter->cache; in mbfilter_unicode2sjis_emoji_docomo()
5944 filter->cache = filter->status = 0; in mbfilter_unicode2sjis_emoji_docomo()
5959 CK((*filter->output_function)(c1, filter->data)); in mbfilter_unicode2sjis_emoji_docomo()
5964 filter->status = 1; in mbfilter_unicode2sjis_emoji_docomo()
5965 filter->cache = c; in mbfilter_unicode2sjis_emoji_docomo()
5997 int mbfilter_unicode2sjis_emoji_kddi_sjis(int c, int *s1, mbfl_convert_filter *filter) in mbfilter_unicode2sjis_emoji_kddi_sjis() argument
5999 if (filter->status == 1) { in mbfilter_unicode2sjis_emoji_kddi_sjis()
6000 int c1 = filter->cache; in mbfilter_unicode2sjis_emoji_kddi_sjis()
6001 filter->cache = filter->status = 0; in mbfilter_unicode2sjis_emoji_kddi_sjis()
6012 CK((*filter->output_function)(c1, filter->data)); in mbfilter_unicode2sjis_emoji_kddi_sjis()
6014 } else if (filter->status == 2) { in mbfilter_unicode2sjis_emoji_kddi_sjis()
6015 int c1 = filter->cache; in mbfilter_unicode2sjis_emoji_kddi_sjis()
6016 filter->cache = filter->status = 0; in mbfilter_unicode2sjis_emoji_kddi_sjis()
6028 mbfl_filt_conv_illegal_output(c1, filter); in mbfilter_unicode2sjis_emoji_kddi_sjis()
6032 filter->status = 1; in mbfilter_unicode2sjis_emoji_kddi_sjis()
6033 filter->cache = c; in mbfilter_unicode2sjis_emoji_kddi_sjis()
6036 filter->status = 2; in mbfilter_unicode2sjis_emoji_kddi_sjis()
6037 filter->cache = c; in mbfilter_unicode2sjis_emoji_kddi_sjis()
6069 int mbfilter_unicode2sjis_emoji_sb(int c, int *s1, mbfl_convert_filter *filter) in mbfilter_unicode2sjis_emoji_sb() argument
6071 if (filter->status == 1) { in mbfilter_unicode2sjis_emoji_sb()
6072 int c1 = filter->cache; in mbfilter_unicode2sjis_emoji_sb()
6073 filter->cache = filter->status = 0; in mbfilter_unicode2sjis_emoji_sb()
6084 (*filter->output_function)(c1, filter->data); in mbfilter_unicode2sjis_emoji_sb()
6086 } else if (filter->status == 2) { in mbfilter_unicode2sjis_emoji_sb()
6087 int c1 = filter->cache; in mbfilter_unicode2sjis_emoji_sb()
6088 filter->cache = filter->status = 0; in mbfilter_unicode2sjis_emoji_sb()
6100 mbfl_filt_conv_illegal_output(c1, filter); in mbfilter_unicode2sjis_emoji_sb()
6104 filter->status = 1; in mbfilter_unicode2sjis_emoji_sb()
6105 filter->cache = c; in mbfilter_unicode2sjis_emoji_sb()
6108 filter->status = 2; in mbfilter_unicode2sjis_emoji_sb()
6109 filter->cache = c; in mbfilter_unicode2sjis_emoji_sb()
6141 static int mbfl_filt_conv_sjis_mobile_wchar(int c, mbfl_convert_filter *filter) in mbfl_filt_conv_sjis_mobile_wchar() argument
6145 switch (filter->status) { in mbfl_filt_conv_sjis_mobile_wchar()
6148 if (filter->from == &mbfl_encoding_sjis_sb && c == 0x1B) { in mbfl_filt_conv_sjis_mobile_wchar()
6150 filter->cache = c; in mbfl_filt_conv_sjis_mobile_wchar()
6151 filter->status = 2; in mbfl_filt_conv_sjis_mobile_wchar()
6153 CK((*filter->output_function)(c, filter->data)); in mbfl_filt_conv_sjis_mobile_wchar()
6156 CK((*filter->output_function)(0xFEC0 + c, filter->data)); in mbfl_filt_conv_sjis_mobile_wchar()
6158 filter->status = 1; in mbfl_filt_conv_sjis_mobile_wchar()
6159 filter->cache = c; in mbfl_filt_conv_sjis_mobile_wchar()
6161 CK((*filter->output_function)(MBFL_BAD_INPUT, filter->data)); in mbfl_filt_conv_sjis_mobile_wchar()
6166 filter->status = 0; in mbfl_filt_conv_sjis_mobile_wchar()
6167 c1 = filter->cache; in mbfl_filt_conv_sjis_mobile_wchar()
6199 …if (filter->from == &mbfl_encoding_sjis_docomo && s >= mb_tbl_code2uni_docomo1_min && s <= mb_tbl_… in mbfl_filt_conv_sjis_mobile_wchar()
6202 CK((*filter->output_function)(snd, filter->data)); in mbfl_filt_conv_sjis_mobile_wchar()
6204 …} else if (filter->from == &mbfl_encoding_sjis_kddi && s >= mb_tbl_code2uni_kddi1_min && s <= mb_t… in mbfl_filt_conv_sjis_mobile_wchar()
6207 CK((*filter->output_function)(snd, filter->data)); in mbfl_filt_conv_sjis_mobile_wchar()
6209 …} else if (filter->from == &mbfl_encoding_sjis_sb && s >= mb_tbl_code2uni_sb1_min && s <= mb_tbl_c… in mbfl_filt_conv_sjis_mobile_wchar()
6212 CK((*filter->output_function)(snd, filter->data)); in mbfl_filt_conv_sjis_mobile_wchar()
6227 CK((*filter->output_function)(w, filter->data)); in mbfl_filt_conv_sjis_mobile_wchar()
6229 CK((*filter->output_function)(MBFL_BAD_INPUT, filter->data)); in mbfl_filt_conv_sjis_mobile_wchar()
6236 filter->cache = c; in mbfl_filt_conv_sjis_mobile_wchar()
6237 filter->status++; in mbfl_filt_conv_sjis_mobile_wchar()
6239 CK((*filter->output_function)(MBFL_BAD_INPUT, filter->data)); in mbfl_filt_conv_sjis_mobile_wchar()
6240 filter->status = filter->cache = 0; in mbfl_filt_conv_sjis_mobile_wchar()
6247 filter->cache = c; in mbfl_filt_conv_sjis_mobile_wchar()
6248 filter->status++; in mbfl_filt_conv_sjis_mobile_wchar()
6250 CK((*filter->output_function)(MBFL_BAD_INPUT, filter->data)); in mbfl_filt_conv_sjis_mobile_wchar()
6251 filter->status = filter->cache = 0; in mbfl_filt_conv_sjis_mobile_wchar()
6257 c1 = filter->cache; in mbfl_filt_conv_sjis_mobile_wchar()
6259 filter->status = filter->cache = 0; in mbfl_filt_conv_sjis_mobile_wchar()
6275 CK((*filter->output_function)(MBFL_BAD_INPUT, filter->data)); in mbfl_filt_conv_sjis_mobile_wchar()
6276 filter->status = filter->cache = 0; in mbfl_filt_conv_sjis_mobile_wchar()
6283 CK((*filter->output_function)(snd, filter->data)); in mbfl_filt_conv_sjis_mobile_wchar()
6285 CK((*filter->output_function)(w, filter->data)); in mbfl_filt_conv_sjis_mobile_wchar()
6287 CK((*filter->output_function)(MBFL_BAD_INPUT, filter->data)); in mbfl_filt_conv_sjis_mobile_wchar()
6288 filter->status = filter->cache = 0; in mbfl_filt_conv_sjis_mobile_wchar()
6296 static int mbfl_filt_conv_wchar_sjis_mobile(int c, mbfl_convert_filter *filter) in mbfl_filt_conv_wchar_sjis_mobile() argument
6361 …if ((filter->to == &mbfl_encoding_sjis_docomo && mbfilter_unicode2sjis_emoji_docomo(c, &s1, filter in mbfl_filt_conv_wchar_sjis_mobile()
6362 …(filter->to == &mbfl_encoding_sjis_kddi && mbfilter_unicode2sjis_emoji_kddi_sjis(c, &s1, filter)… in mbfl_filt_conv_wchar_sjis_mobile()
6363 (filter->to == &mbfl_encoding_sjis_sb && mbfilter_unicode2sjis_emoji_sb(c, &s1, filter))) { in mbfl_filt_conv_wchar_sjis_mobile()
6367 if (filter->status) { in mbfl_filt_conv_wchar_sjis_mobile()
6373 CK((*filter->output_function)(s1, filter->data)); in mbfl_filt_conv_wchar_sjis_mobile()
6378 CK((*filter->output_function)(s1, filter->data)); in mbfl_filt_conv_wchar_sjis_mobile()
6379 CK((*filter->output_function)(s2, filter->data)); in mbfl_filt_conv_wchar_sjis_mobile()
6382 CK(mbfl_filt_conv_illegal_output(c, filter)); in mbfl_filt_conv_wchar_sjis_mobile()
6388 int mbfl_filt_conv_sjis_mobile_flush(mbfl_convert_filter *filter) in mbfl_filt_conv_sjis_mobile_flush() argument
6390 int c1 = filter->cache; in mbfl_filt_conv_sjis_mobile_flush()
6391 if (filter->status == 1 && (c1 == '#' || (c1 >= '0' && c1 <= '9'))) { in mbfl_filt_conv_sjis_mobile_flush()
6392 filter->cache = filter->status = 0; in mbfl_filt_conv_sjis_mobile_flush()
6393 CK((*filter->output_function)(c1, filter->data)); in mbfl_filt_conv_sjis_mobile_flush()
6394 } else if (filter->status == 2) { in mbfl_filt_conv_sjis_mobile_flush()
6396 filter->cache = filter->status = 0; in mbfl_filt_conv_sjis_mobile_flush()
6397 mbfl_filt_conv_illegal_output(c1, filter); in mbfl_filt_conv_sjis_mobile_flush()
6400 if (filter->flush_function) { in mbfl_filt_conv_sjis_mobile_flush()
6401 (*filter->flush_function)(filter->data); in mbfl_filt_conv_sjis_mobile_flush()
7357 static int mbfl_filt_conv_cp932_wchar(int c, mbfl_convert_filter *filter) in mbfl_filt_conv_cp932_wchar() argument
7361 switch (filter->status) { in mbfl_filt_conv_cp932_wchar()
7364 CK((*filter->output_function)(c, filter->data)); in mbfl_filt_conv_cp932_wchar()
7366 CK((*filter->output_function)(0xfec0 + c, filter->data)); in mbfl_filt_conv_cp932_wchar()
7368 filter->status = 1; in mbfl_filt_conv_cp932_wchar()
7369 filter->cache = c; in mbfl_filt_conv_cp932_wchar()
7371 CK((*filter->output_function)(MBFL_BAD_INPUT, filter->data)); in mbfl_filt_conv_cp932_wchar()
7376 filter->status = 0; in mbfl_filt_conv_cp932_wchar()
7377 c1 = filter->cache; in mbfl_filt_conv_cp932_wchar()
7417 CK((*filter->output_function)(w, filter->data)); in mbfl_filt_conv_cp932_wchar()
7419 CK((*filter->output_function)(MBFL_BAD_INPUT, filter->data)); in mbfl_filt_conv_cp932_wchar()
7429 static int mbfl_filt_conv_cp932_wchar_flush(mbfl_convert_filter *filter) in mbfl_filt_conv_cp932_wchar_flush() argument
7431 if (filter->status) { in mbfl_filt_conv_cp932_wchar_flush()
7432 (*filter->output_function)(MBFL_BAD_INPUT, filter->data); in mbfl_filt_conv_cp932_wchar_flush()
7433 filter->status = 0; in mbfl_filt_conv_cp932_wchar_flush()
7436 if (filter->flush_function) { in mbfl_filt_conv_cp932_wchar_flush()
7437 (*filter->flush_function)(filter->data); in mbfl_filt_conv_cp932_wchar_flush()
7443 static int mbfl_filt_conv_wchar_cp932(int c, mbfl_convert_filter *filter) in mbfl_filt_conv_wchar_cp932() argument
7513 CK((*filter->output_function)(s1, filter->data)); in mbfl_filt_conv_wchar_cp932()
7518 CK((*filter->output_function)(s1, filter->data)); in mbfl_filt_conv_wchar_cp932()
7519 CK((*filter->output_function)(s2, filter->data)); in mbfl_filt_conv_wchar_cp932()
7522 CK(mbfl_filt_conv_illegal_output(c, filter)); in mbfl_filt_conv_wchar_cp932()
7528 static int mbfl_filt_conv_wchar_sjiswin(int c, mbfl_convert_filter *filter) in mbfl_filt_conv_wchar_sjiswin() argument
7531 CK((*filter->output_function)(0x81, filter->data)); in mbfl_filt_conv_wchar_sjiswin()
7532 CK((*filter->output_function)(0x8F, filter->data)); in mbfl_filt_conv_wchar_sjiswin()
7534 CK((*filter->output_function)(0x81, filter->data)); in mbfl_filt_conv_wchar_sjiswin()
7535 CK((*filter->output_function)(0x50, filter->data)); in mbfl_filt_conv_wchar_sjiswin()
7537 return mbfl_filt_conv_wchar_cp932(c, filter); in mbfl_filt_conv_wchar_sjiswin()
8177 static int mbfl_filt_conv_eucjp_wchar(int c, mbfl_convert_filter *filter) in mbfl_filt_conv_eucjp_wchar() argument
8181 switch (filter->status) { in mbfl_filt_conv_eucjp_wchar()
8184 CK((*filter->output_function)(c, filter->data)); in mbfl_filt_conv_eucjp_wchar()
8186 filter->status = 1; in mbfl_filt_conv_eucjp_wchar()
8187 filter->cache = c; in mbfl_filt_conv_eucjp_wchar()
8189 filter->status = 2; in mbfl_filt_conv_eucjp_wchar()
8191 filter->status = 3; in mbfl_filt_conv_eucjp_wchar()
8193 CK((*filter->output_function)(MBFL_BAD_INPUT, filter->data)); in mbfl_filt_conv_eucjp_wchar()
8198 filter->status = 0; in mbfl_filt_conv_eucjp_wchar()
8199 c1 = filter->cache; in mbfl_filt_conv_eucjp_wchar()
8210 CK((*filter->output_function)(w, filter->data)); in mbfl_filt_conv_eucjp_wchar()
8212 CK((*filter->output_function)(MBFL_BAD_INPUT, filter->data)); in mbfl_filt_conv_eucjp_wchar()
8217 filter->status = 0; in mbfl_filt_conv_eucjp_wchar()
8220 CK((*filter->output_function)(w, filter->data)); in mbfl_filt_conv_eucjp_wchar()
8222 CK((*filter->output_function)(MBFL_BAD_INPUT, filter->data)); in mbfl_filt_conv_eucjp_wchar()
8227 filter->status++; in mbfl_filt_conv_eucjp_wchar()
8228 filter->cache = c; in mbfl_filt_conv_eucjp_wchar()
8232 filter->status = 0; in mbfl_filt_conv_eucjp_wchar()
8233 c1 = filter->cache; in mbfl_filt_conv_eucjp_wchar()
8244 CK((*filter->output_function)(w, filter->data)); in mbfl_filt_conv_eucjp_wchar()
8246 CK((*filter->output_function)(MBFL_BAD_INPUT, filter->data)); in mbfl_filt_conv_eucjp_wchar()
8256 static int mbfl_filt_conv_eucjp_wchar_flush(mbfl_convert_filter *filter) in mbfl_filt_conv_eucjp_wchar_flush() argument
8258 if (filter->status) { in mbfl_filt_conv_eucjp_wchar_flush()
8259 (*filter->output_function)(MBFL_BAD_INPUT, filter->data); in mbfl_filt_conv_eucjp_wchar_flush()
8260 filter->status = 0; in mbfl_filt_conv_eucjp_wchar_flush()
8263 if (filter->flush_function) { in mbfl_filt_conv_eucjp_wchar_flush()
8264 (*filter->flush_function)(filter->data); in mbfl_filt_conv_eucjp_wchar_flush()
8270 static int mbfl_filt_conv_wchar_eucjp(int c, mbfl_convert_filter *filter) in mbfl_filt_conv_wchar_eucjp() argument
8306 CK((*filter->output_function)(s, filter->data)); in mbfl_filt_conv_wchar_eucjp()
8308 CK((*filter->output_function)(0x8e, filter->data)); in mbfl_filt_conv_wchar_eucjp()
8309 CK((*filter->output_function)(s, filter->data)); in mbfl_filt_conv_wchar_eucjp()
8311 CK((*filter->output_function)(((s >> 8) & 0xff) | 0x80, filter->data)); in mbfl_filt_conv_wchar_eucjp()
8312 CK((*filter->output_function)((s & 0xff) | 0x80, filter->data)); in mbfl_filt_conv_wchar_eucjp()
8314 CK((*filter->output_function)(0x8f, filter->data)); in mbfl_filt_conv_wchar_eucjp()
8315 CK((*filter->output_function)(((s >> 8) & 0xff) | 0x80, filter->data)); in mbfl_filt_conv_wchar_eucjp()
8316 CK((*filter->output_function)((s & 0xff) | 0x80, filter->data)); in mbfl_filt_conv_wchar_eucjp()
8319 CK(mbfl_filt_conv_illegal_output(c, filter)); in mbfl_filt_conv_wchar_eucjp()
8447 static int mbfl_filt_conv_eucjpwin_wchar(int c, mbfl_convert_filter *filter) in mbfl_filt_conv_eucjpwin_wchar() argument
8451 switch (filter->status) { in mbfl_filt_conv_eucjpwin_wchar()
8454 CK((*filter->output_function)(c, filter->data)); in mbfl_filt_conv_eucjpwin_wchar()
8456 filter->status = 1; in mbfl_filt_conv_eucjpwin_wchar()
8457 filter->cache = c; in mbfl_filt_conv_eucjpwin_wchar()
8459 filter->status = 2; in mbfl_filt_conv_eucjpwin_wchar()
8461 filter->status = 3; in mbfl_filt_conv_eucjpwin_wchar()
8463 CK((*filter->output_function)(MBFL_BAD_INPUT, filter->data)); in mbfl_filt_conv_eucjpwin_wchar()
8468 filter->status = 0; in mbfl_filt_conv_eucjpwin_wchar()
8469 c1 = filter->cache; in mbfl_filt_conv_eucjpwin_wchar()
8504 CK((*filter->output_function)(w, filter->data)); in mbfl_filt_conv_eucjpwin_wchar()
8506 CK((*filter->output_function)(MBFL_BAD_INPUT, filter->data)); in mbfl_filt_conv_eucjpwin_wchar()
8511 filter->status = 0; in mbfl_filt_conv_eucjpwin_wchar()
8514 CK((*filter->output_function)(w, filter->data)); in mbfl_filt_conv_eucjpwin_wchar()
8516 CK((*filter->output_function)(MBFL_BAD_INPUT, filter->data)); in mbfl_filt_conv_eucjpwin_wchar()
8521 filter->status++; in mbfl_filt_conv_eucjpwin_wchar()
8522 filter->cache = c; in mbfl_filt_conv_eucjpwin_wchar()
8526 filter->status = 0; in mbfl_filt_conv_eucjpwin_wchar()
8527 c1 = filter->cache; in mbfl_filt_conv_eucjpwin_wchar()
8563 CK((*filter->output_function)(w, filter->data)); in mbfl_filt_conv_eucjpwin_wchar()
8565 CK((*filter->output_function)(MBFL_BAD_INPUT, filter->data)); in mbfl_filt_conv_eucjpwin_wchar()
8575 static int mbfl_filt_conv_eucjpwin_wchar_flush(mbfl_convert_filter *filter) in mbfl_filt_conv_eucjpwin_wchar_flush() argument
8577 if (filter->status) { in mbfl_filt_conv_eucjpwin_wchar_flush()
8578 (*filter->output_function)(MBFL_BAD_INPUT, filter->data); in mbfl_filt_conv_eucjpwin_wchar_flush()
8579 filter->status = 0; in mbfl_filt_conv_eucjpwin_wchar_flush()
8582 if (filter->flush_function) { in mbfl_filt_conv_eucjpwin_wchar_flush()
8583 (*filter->flush_function)(filter->data); in mbfl_filt_conv_eucjpwin_wchar_flush()
8589 static int mbfl_filt_conv_wchar_eucjpwin(int c, mbfl_convert_filter *filter) in mbfl_filt_conv_wchar_eucjpwin() argument
8675 CK((*filter->output_function)(s1, filter->data)); in mbfl_filt_conv_wchar_eucjpwin()
8677 CK((*filter->output_function)(0x8e, filter->data)); in mbfl_filt_conv_wchar_eucjpwin()
8678 CK((*filter->output_function)(s1, filter->data)); in mbfl_filt_conv_wchar_eucjpwin()
8680 CK((*filter->output_function)(((s1 >> 8) & 0xff) | 0x80, filter->data)); in mbfl_filt_conv_wchar_eucjpwin()
8681 CK((*filter->output_function)((s1 & 0xff) | 0x80, filter->data)); in mbfl_filt_conv_wchar_eucjpwin()
8683 CK((*filter->output_function)(0x8f, filter->data)); in mbfl_filt_conv_wchar_eucjpwin()
8684 CK((*filter->output_function)(((s1 >> 8) & 0xff) | 0x80, filter->data)); in mbfl_filt_conv_wchar_eucjpwin()
8685 CK((*filter->output_function)((s1 & 0xff) | 0x80, filter->data)); in mbfl_filt_conv_wchar_eucjpwin()
8688 CK(mbfl_filt_conv_illegal_output(c, filter)); in mbfl_filt_conv_wchar_eucjpwin()
8887 static int mbfl_filt_conv_cp51932_wchar(int c, mbfl_convert_filter *filter) in mbfl_filt_conv_cp51932_wchar() argument
8891 switch (filter->status) { in mbfl_filt_conv_cp51932_wchar()
8894 CK((*filter->output_function)(c, filter->data)); in mbfl_filt_conv_cp51932_wchar()
8896 filter->status = 1; in mbfl_filt_conv_cp51932_wchar()
8897 filter->cache = c; in mbfl_filt_conv_cp51932_wchar()
8899 filter->status = 2; in mbfl_filt_conv_cp51932_wchar()
8901 CK((*filter->output_function)(MBFL_BAD_INPUT, filter->data)); in mbfl_filt_conv_cp51932_wchar()
8906 filter->status = 0; in mbfl_filt_conv_cp51932_wchar()
8907 c1 = filter->cache; in mbfl_filt_conv_cp51932_wchar()
8940 CK((*filter->output_function)(w, filter->data)); in mbfl_filt_conv_cp51932_wchar()
8942 CK((*filter->output_function)(MBFL_BAD_INPUT, filter->data)); in mbfl_filt_conv_cp51932_wchar()
8947 filter->status = 0; in mbfl_filt_conv_cp51932_wchar()
8950 CK((*filter->output_function)(w, filter->data)); in mbfl_filt_conv_cp51932_wchar()
8952 CK((*filter->output_function)(MBFL_BAD_INPUT, filter->data)); in mbfl_filt_conv_cp51932_wchar()
8962 static int mbfl_filt_conv_cp51932_wchar_flush(mbfl_convert_filter *filter) in mbfl_filt_conv_cp51932_wchar_flush() argument
8964 if (filter->status) { in mbfl_filt_conv_cp51932_wchar_flush()
8966 (*filter->output_function)(MBFL_BAD_INPUT, filter->data); in mbfl_filt_conv_cp51932_wchar_flush()
8967 filter->status = 0; in mbfl_filt_conv_cp51932_wchar_flush()
8970 if (filter->flush_function) { in mbfl_filt_conv_cp51932_wchar_flush()
8971 (*filter->flush_function)(filter->data); in mbfl_filt_conv_cp51932_wchar_flush()
8977 static int mbfl_filt_conv_wchar_cp51932(int c, mbfl_convert_filter *filter) in mbfl_filt_conv_wchar_cp51932() argument
9039 CK((*filter->output_function)(s1, filter->data)); in mbfl_filt_conv_wchar_cp51932()
9041 CK((*filter->output_function)(0x8e, filter->data)); in mbfl_filt_conv_wchar_cp51932()
9042 CK((*filter->output_function)(s1, filter->data)); in mbfl_filt_conv_wchar_cp51932()
9044 CK((*filter->output_function)(((s1 >> 8) & 0xff) | 0x80, filter->data)); in mbfl_filt_conv_wchar_cp51932()
9045 CK((*filter->output_function)((s1 & 0xff) | 0x80, filter->data)); in mbfl_filt_conv_wchar_cp51932()
9047 CK(mbfl_filt_conv_illegal_output(c, filter)); in mbfl_filt_conv_wchar_cp51932()
9050 CK(mbfl_filt_conv_illegal_output(c, filter)); in mbfl_filt_conv_wchar_cp51932()
9416 static int mbfl_filt_conv_euccn_wchar(int c, mbfl_convert_filter *filter) in mbfl_filt_conv_euccn_wchar() argument
9420 switch (filter->status) { in mbfl_filt_conv_euccn_wchar()
9423 CK((*filter->output_function)(c, filter->data)); in mbfl_filt_conv_euccn_wchar()
9425 filter->status = 1; in mbfl_filt_conv_euccn_wchar()
9426 filter->cache = c; in mbfl_filt_conv_euccn_wchar()
9428 CK((*filter->output_function)(MBFL_BAD_INPUT, filter->data)); in mbfl_filt_conv_euccn_wchar()
9433 filter->status = 0; in mbfl_filt_conv_euccn_wchar()
9434 c1 = filter->cache; in mbfl_filt_conv_euccn_wchar()
9452 CK((*filter->output_function)(w, filter->data)); in mbfl_filt_conv_euccn_wchar()
9454 CK((*filter->output_function)(MBFL_BAD_INPUT, filter->data)); in mbfl_filt_conv_euccn_wchar()
9464 static int mbfl_filt_conv_wchar_euccn(int c, mbfl_convert_filter *filter) in mbfl_filt_conv_wchar_euccn() argument
9517 CK((*filter->output_function)(s, filter->data)); in mbfl_filt_conv_wchar_euccn()
9519 CK((*filter->output_function)((s >> 8) & 0xFF, filter->data)); in mbfl_filt_conv_wchar_euccn()
9520 CK((*filter->output_function)(s & 0xFF, filter->data)); in mbfl_filt_conv_wchar_euccn()
9523 CK(mbfl_filt_conv_illegal_output(c, filter)); in mbfl_filt_conv_wchar_euccn()
9529 static int mbfl_filt_conv_euccn_wchar_flush(mbfl_convert_filter *filter) in mbfl_filt_conv_euccn_wchar_flush() argument
9531 if (filter->status == 1) { in mbfl_filt_conv_euccn_wchar_flush()
9533 filter->status = 0; in mbfl_filt_conv_euccn_wchar_flush()
9534 CK((*filter->output_function)(MBFL_BAD_INPUT, filter->data)); in mbfl_filt_conv_euccn_wchar_flush()
9537 if (filter->flush_function) { in mbfl_filt_conv_euccn_wchar_flush()
9538 (*filter->flush_function)(filter->data); in mbfl_filt_conv_euccn_wchar_flush()
9648 static int mbfl_filt_conv_euctw_wchar(int c, mbfl_convert_filter *filter) in mbfl_filt_conv_euctw_wchar() argument
9652 switch (filter->status) { in mbfl_filt_conv_euctw_wchar()
9655 CK((*filter->output_function)(c, filter->data)); in mbfl_filt_conv_euctw_wchar()
9657 filter->status = 1; in mbfl_filt_conv_euctw_wchar()
9658 filter->cache = c; in mbfl_filt_conv_euctw_wchar()
9660 filter->status = 2; in mbfl_filt_conv_euctw_wchar()
9662 CK((*filter->output_function)(MBFL_BAD_INPUT, filter->data)); in mbfl_filt_conv_euctw_wchar()
9667 filter->status = 0; in mbfl_filt_conv_euctw_wchar()
9668 c1 = filter->cache; in mbfl_filt_conv_euctw_wchar()
9681 CK((*filter->output_function)(w, filter->data)); in mbfl_filt_conv_euctw_wchar()
9683 filter->status = filter->cache = 0; in mbfl_filt_conv_euctw_wchar()
9684 CK((*filter->output_function)(MBFL_BAD_INPUT, filter->data)); in mbfl_filt_conv_euctw_wchar()
9690 filter->status = 3; in mbfl_filt_conv_euctw_wchar()
9691 filter->cache = c - 0xA1; in mbfl_filt_conv_euctw_wchar()
9693 filter->status = filter->cache = 0; in mbfl_filt_conv_euctw_wchar()
9694 CK((*filter->output_function)(MBFL_BAD_INPUT, filter->data)); in mbfl_filt_conv_euctw_wchar()
9699 filter->status = 0; in mbfl_filt_conv_euctw_wchar()
9700 c1 = filter->cache; in mbfl_filt_conv_euctw_wchar()
9703 filter->status = 4; in mbfl_filt_conv_euctw_wchar()
9704 filter->cache = (c1 << 8) + c - 0xA1; in mbfl_filt_conv_euctw_wchar()
9706 filter->status = filter->cache = 0; in mbfl_filt_conv_euctw_wchar()
9707 CK((*filter->output_function)(MBFL_BAD_INPUT, filter->data)); in mbfl_filt_conv_euctw_wchar()
9712 filter->status = 0; in mbfl_filt_conv_euctw_wchar()
9713 c1 = filter->cache; in mbfl_filt_conv_euctw_wchar()
9736 CK((*filter->output_function)(w, filter->data)); in mbfl_filt_conv_euctw_wchar()
9738 filter->status = filter->cache = 0; in mbfl_filt_conv_euctw_wchar()
9739 CK((*filter->output_function)(MBFL_BAD_INPUT, filter->data)); in mbfl_filt_conv_euctw_wchar()
9749 static int mbfl_filt_conv_wchar_euctw(int c, mbfl_convert_filter *filter) in mbfl_filt_conv_wchar_euctw() argument
9777 CK((*filter->output_function)(s, filter->data)); in mbfl_filt_conv_wchar_euctw()
9780 CK((*filter->output_function)((s >> 8) & 0xFF, filter->data)); in mbfl_filt_conv_wchar_euctw()
9781 CK((*filter->output_function)(s & 0xFF, filter->data)); in mbfl_filt_conv_wchar_euctw()
9785 CK((*filter->output_function)(0x8e , filter->data)); in mbfl_filt_conv_wchar_euctw()
9786 CK((*filter->output_function)((s >> 16) & 0xFF, filter->data)); in mbfl_filt_conv_wchar_euctw()
9787 CK((*filter->output_function)((s >> 8) & 0xFF, filter->data)); in mbfl_filt_conv_wchar_euctw()
9788 CK((*filter->output_function)(s & 0xFF, filter->data)); in mbfl_filt_conv_wchar_euctw()
9791 CK(mbfl_filt_conv_illegal_output(c, filter)); in mbfl_filt_conv_wchar_euctw()
9796 static int mbfl_filt_conv_euctw_wchar_flush(mbfl_convert_filter *filter) in mbfl_filt_conv_euctw_wchar_flush() argument
9798 if (filter->status) { in mbfl_filt_conv_euctw_wchar_flush()
9800 filter->status = 0; in mbfl_filt_conv_euctw_wchar_flush()
9801 CK((*filter->output_function)(MBFL_BAD_INPUT, filter->data)); in mbfl_filt_conv_euctw_wchar_flush()
9804 if (filter->flush_function) { in mbfl_filt_conv_euctw_wchar_flush()
9805 (*filter->flush_function)(filter->data); in mbfl_filt_conv_euctw_wchar_flush()
9928 static int mbfl_filt_conv_euckr_wchar(int c, mbfl_convert_filter *filter) in mbfl_filt_conv_euckr_wchar() argument
9932 switch (filter->status) { in mbfl_filt_conv_euckr_wchar()
9935 CK((*filter->output_function)(c, filter->data)); in mbfl_filt_conv_euckr_wchar()
9937 filter->status = 1; in mbfl_filt_conv_euckr_wchar()
9938 filter->cache = c; in mbfl_filt_conv_euckr_wchar()
9940 CK((*filter->output_function)(MBFL_BAD_INPUT, filter->data)); in mbfl_filt_conv_euckr_wchar()
9945 filter->status = 0; in mbfl_filt_conv_euckr_wchar()
9946 c1 = filter->cache; in mbfl_filt_conv_euckr_wchar()
9967 CK((*filter->output_function)(w, filter->data)); in mbfl_filt_conv_euckr_wchar()
9969 CK((*filter->output_function)(MBFL_BAD_INPUT, filter->data)); in mbfl_filt_conv_euckr_wchar()
9979 static int mbfl_filt_conv_wchar_euckr(int c, mbfl_convert_filter *filter) in mbfl_filt_conv_wchar_euckr() argument
10014 CK((*filter->output_function)(s, filter->data)); in mbfl_filt_conv_wchar_euckr()
10016 CK((*filter->output_function)((s >> 8) & 0xff, filter->data)); in mbfl_filt_conv_wchar_euckr()
10017 CK((*filter->output_function)(s & 0xff, filter->data)); in mbfl_filt_conv_wchar_euckr()
10020 CK(mbfl_filt_conv_illegal_output(c, filter)); in mbfl_filt_conv_wchar_euckr()
10026 static int mbfl_filt_conv_euckr_wchar_flush(mbfl_convert_filter *filter) in mbfl_filt_conv_euckr_wchar_flush() argument
10028 if (filter->status == 1) { in mbfl_filt_conv_euckr_wchar_flush()
10030 filter->status = 0; in mbfl_filt_conv_euckr_wchar_flush()
10031 CK((*filter->output_function)(MBFL_BAD_INPUT, filter->data)); in mbfl_filt_conv_euckr_wchar_flush()
10034 if (filter->flush_function) { in mbfl_filt_conv_euckr_wchar_flush()
10035 (*filter->flush_function)(filter->data); in mbfl_filt_conv_euckr_wchar_flush()
10132 static int mbfl_filt_conv_uhc_wchar(int c, mbfl_convert_filter *filter) in mbfl_filt_conv_uhc_wchar() argument
10134 switch (filter->status) { in mbfl_filt_conv_uhc_wchar()
10137 CK((*filter->output_function)(c, filter->data)); in mbfl_filt_conv_uhc_wchar()
10139 filter->status = 1; in mbfl_filt_conv_uhc_wchar()
10140 filter->cache = c; in mbfl_filt_conv_uhc_wchar()
10142 CK((*filter->output_function)(MBFL_BAD_INPUT, filter->data)); in mbfl_filt_conv_uhc_wchar()
10147 filter->status = 0; in mbfl_filt_conv_uhc_wchar()
10148 int c1 = filter->cache, w = 0; in mbfl_filt_conv_uhc_wchar()
10165 CK((*filter->output_function)(w, filter->data)); in mbfl_filt_conv_uhc_wchar()
10174 static int mbfl_filt_conv_uhc_wchar_flush(mbfl_convert_filter *filter) in mbfl_filt_conv_uhc_wchar_flush() argument
10176 if (filter->status == 1) { in mbfl_filt_conv_uhc_wchar_flush()
10178 filter->status = 0; in mbfl_filt_conv_uhc_wchar_flush()
10179 CK((*filter->output_function)(MBFL_BAD_INPUT, filter->data)); in mbfl_filt_conv_uhc_wchar_flush()
10182 if (filter->flush_function) { in mbfl_filt_conv_uhc_wchar_flush()
10183 (*filter->flush_function)(filter->data); in mbfl_filt_conv_uhc_wchar_flush()
10189 static int mbfl_filt_conv_wchar_uhc(int c, mbfl_convert_filter *filter) in mbfl_filt_conv_wchar_uhc() argument
10215 CK((*filter->output_function)(s, filter->data)); in mbfl_filt_conv_wchar_uhc()
10217 CK((*filter->output_function)((s >> 8) & 0xff, filter->data)); in mbfl_filt_conv_wchar_uhc()
10218 CK((*filter->output_function)(s & 0xff, filter->data)); in mbfl_filt_conv_wchar_uhc()
10221 CK(mbfl_filt_conv_illegal_output(c, filter)); in mbfl_filt_conv_wchar_uhc()
10688 static int mbfl_filt_conv_gb18030_wchar(int c, mbfl_convert_filter *filter) in mbfl_filt_conv_gb18030_wchar() argument
10693 switch (filter->status) { in mbfl_filt_conv_gb18030_wchar()
10696 CK((*filter->output_function)(c, filter->data)); in mbfl_filt_conv_gb18030_wchar()
10698 filter->status = 1; in mbfl_filt_conv_gb18030_wchar()
10699 filter->cache = c; in mbfl_filt_conv_gb18030_wchar()
10701 CK((*filter->output_function)(MBFL_BAD_INPUT, filter->data)); in mbfl_filt_conv_gb18030_wchar()
10706 c1 = filter->cache; in mbfl_filt_conv_gb18030_wchar()
10707 filter->status = 0; in mbfl_filt_conv_gb18030_wchar()
10711 filter->status = 2; in mbfl_filt_conv_gb18030_wchar()
10712 filter->cache = (c1 << 8) | c; in mbfl_filt_conv_gb18030_wchar()
10716 filter->status = 2; in mbfl_filt_conv_gb18030_wchar()
10717 filter->cache = (c1 << 8) | c; in mbfl_filt_conv_gb18030_wchar()
10722 CK((*filter->output_function)(w, filter->data)); in mbfl_filt_conv_gb18030_wchar()
10726 CK((*filter->output_function)(w, filter->data)); in mbfl_filt_conv_gb18030_wchar()
10738 CK((*filter->output_function)(w, filter->data)); in mbfl_filt_conv_gb18030_wchar()
10752 CK((*filter->output_function)(cp936_ucs_table[w], filter->data)); in mbfl_filt_conv_gb18030_wchar()
10754 CK((*filter->output_function)(MBFL_BAD_INPUT, filter->data)); in mbfl_filt_conv_gb18030_wchar()
10760 c1 = (filter->cache >> 8) & 0xff; in mbfl_filt_conv_gb18030_wchar()
10761 c2 = filter->cache & 0xff; in mbfl_filt_conv_gb18030_wchar()
10762 filter->status = filter->cache = 0; in mbfl_filt_conv_gb18030_wchar()
10764 filter->cache = (c1 << 16) | (c2 << 8) | c; in mbfl_filt_conv_gb18030_wchar()
10765 filter->status = 3; in mbfl_filt_conv_gb18030_wchar()
10767 CK((*filter->output_function)(MBFL_BAD_INPUT, filter->data)); in mbfl_filt_conv_gb18030_wchar()
10772 c1 = (filter->cache >> 16) & 0xff; in mbfl_filt_conv_gb18030_wchar()
10773 c2 = (filter->cache >> 8) & 0xff; in mbfl_filt_conv_gb18030_wchar()
10774 c3 = filter->cache & 0xff; in mbfl_filt_conv_gb18030_wchar()
10775 filter->status = filter->cache = 0; in mbfl_filt_conv_gb18030_wchar()
10780 CK((*filter->output_function)(MBFL_BAD_INPUT, filter->data)); in mbfl_filt_conv_gb18030_wchar()
10789 CK((*filter->output_function)(MBFL_BAD_INPUT, filter->data)); in mbfl_filt_conv_gb18030_wchar()
10793 CK((*filter->output_function)(w, filter->data)); in mbfl_filt_conv_gb18030_wchar()
10795 CK((*filter->output_function)(MBFL_BAD_INPUT, filter->data)); in mbfl_filt_conv_gb18030_wchar()
10805 static int mbfl_filt_conv_gb18030_wchar_flush(mbfl_convert_filter *filter) in mbfl_filt_conv_gb18030_wchar_flush() argument
10807 if (filter->status) { in mbfl_filt_conv_gb18030_wchar_flush()
10809 filter->status = 0; in mbfl_filt_conv_gb18030_wchar_flush()
10810 CK((*filter->output_function)(MBFL_BAD_INPUT, filter->data)); in mbfl_filt_conv_gb18030_wchar_flush()
10813 if (filter->flush_function) { in mbfl_filt_conv_gb18030_wchar_flush()
10814 (*filter->flush_function)(filter->data); in mbfl_filt_conv_gb18030_wchar_flush()
10820 static int mbfl_filt_conv_wchar_gb18030(int c, mbfl_convert_filter *filter) in mbfl_filt_conv_wchar_gb18030() argument
10949 CK((*filter->output_function)(s, filter->data)); in mbfl_filt_conv_wchar_gb18030()
10951 CK((*filter->output_function)(s1 & 0xff, filter->data)); in mbfl_filt_conv_wchar_gb18030()
10952 CK((*filter->output_function)((s >> 16) & 0xff, filter->data)); in mbfl_filt_conv_wchar_gb18030()
10953 CK((*filter->output_function)((s >> 8) & 0xff, filter->data)); in mbfl_filt_conv_wchar_gb18030()
10954 CK((*filter->output_function)(s & 0xff, filter->data)); in mbfl_filt_conv_wchar_gb18030()
10956 CK((*filter->output_function)((s >> 8) & 0xff, filter->data)); in mbfl_filt_conv_wchar_gb18030()
10957 CK((*filter->output_function)(s & 0xff, filter->data)); in mbfl_filt_conv_wchar_gb18030()
10960 CK(mbfl_filt_conv_illegal_output(c, filter)); in mbfl_filt_conv_wchar_gb18030()
11220 static int mbfl_filt_conv_cp936_wchar(int c, mbfl_convert_filter *filter) in mbfl_filt_conv_cp936_wchar() argument
11225 switch (filter->status) { in mbfl_filt_conv_cp936_wchar()
11228 CK((*filter->output_function)(c, filter->data)); in mbfl_filt_conv_cp936_wchar()
11230 CK((*filter->output_function)(0x20ac, filter->data)); in mbfl_filt_conv_cp936_wchar()
11232 filter->status = 1; in mbfl_filt_conv_cp936_wchar()
11233 filter->cache = c; in mbfl_filt_conv_cp936_wchar()
11235 CK((*filter->output_function)(0xf8f5, filter->data)); in mbfl_filt_conv_cp936_wchar()
11240 filter->status = 0; in mbfl_filt_conv_cp936_wchar()
11241 c1 = filter->cache; in mbfl_filt_conv_cp936_wchar()
11247 CK((*filter->output_function)(w, filter->data)); in mbfl_filt_conv_cp936_wchar()
11251 CK((*filter->output_function)(w, filter->data)); in mbfl_filt_conv_cp936_wchar()
11265 CK((*filter->output_function)(w, filter->data)); in mbfl_filt_conv_cp936_wchar()
11275 CK((*filter->output_function)(cp936_ucs_table[w], filter->data)); in mbfl_filt_conv_cp936_wchar()
11277 CK((*filter->output_function)(MBFL_BAD_INPUT, filter->data)); in mbfl_filt_conv_cp936_wchar()
11288 static int mbfl_filt_conv_cp936_wchar_flush(mbfl_convert_filter *filter) in mbfl_filt_conv_cp936_wchar_flush() argument
11290 if (filter->status) { in mbfl_filt_conv_cp936_wchar_flush()
11292 filter->status = 0; in mbfl_filt_conv_cp936_wchar_flush()
11293 CK((*filter->output_function)(MBFL_BAD_INPUT, filter->data)); in mbfl_filt_conv_cp936_wchar_flush()
11296 if (filter->flush_function) { in mbfl_filt_conv_cp936_wchar_flush()
11297 (*filter->flush_function)(filter->data); in mbfl_filt_conv_cp936_wchar_flush()
11303 static int mbfl_filt_conv_wchar_cp936(int c, mbfl_convert_filter *filter) in mbfl_filt_conv_wchar_cp936() argument
11386 CK((*filter->output_function)(s, filter->data)); in mbfl_filt_conv_wchar_cp936()
11388 CK((*filter->output_function)((s >> 8) & 0xff, filter->data)); in mbfl_filt_conv_wchar_cp936()
11389 CK((*filter->output_function)(s & 0xff, filter->data)); in mbfl_filt_conv_wchar_cp936()
11392 CK(mbfl_filt_conv_illegal_output(c, filter)); in mbfl_filt_conv_wchar_cp936()
12027 static int mbfl_filt_conv_big5_wchar(int c, mbfl_convert_filter *filter) in mbfl_filt_conv_big5_wchar() argument
12031 switch (filter->status) { in mbfl_filt_conv_big5_wchar()
12034 CK((*filter->output_function)(c, filter->data)); in mbfl_filt_conv_big5_wchar()
12035 …} else if (filter->from->no_encoding != mbfl_no_encoding_cp950 && c > 0xA0 && c <= 0xF9 && c != 0x… in mbfl_filt_conv_big5_wchar()
12036 filter->status = 1; in mbfl_filt_conv_big5_wchar()
12037 filter->cache = c; in mbfl_filt_conv_big5_wchar()
12038 } else if (filter->from->no_encoding == mbfl_no_encoding_cp950 && c > 0x80 && c <= 0xFE) { in mbfl_filt_conv_big5_wchar()
12039 filter->status = 1; in mbfl_filt_conv_big5_wchar()
12040 filter->cache = c; in mbfl_filt_conv_big5_wchar()
12042 CK((*filter->output_function)(MBFL_BAD_INPUT, filter->data)); in mbfl_filt_conv_big5_wchar()
12047 filter->status = 0; in mbfl_filt_conv_big5_wchar()
12048 c1 = filter->cache; in mbfl_filt_conv_big5_wchar()
12061 if (filter->from->no_encoding == mbfl_no_encoding_cp950) { in mbfl_filt_conv_big5_wchar()
12121 CK((*filter->output_function)(w, filter->data)); in mbfl_filt_conv_big5_wchar()
12123 CK((*filter->output_function)(MBFL_BAD_INPUT, filter->data)); in mbfl_filt_conv_big5_wchar()
12133 static int mbfl_filt_conv_big5_wchar_flush(mbfl_convert_filter *filter) in mbfl_filt_conv_big5_wchar_flush() argument
12135 if (filter->status == 1) { in mbfl_filt_conv_big5_wchar_flush()
12137 filter->status = 0; in mbfl_filt_conv_big5_wchar_flush()
12138 CK((*filter->output_function)(MBFL_BAD_INPUT, filter->data)); in mbfl_filt_conv_big5_wchar_flush()
12141 if (filter->flush_function) { in mbfl_filt_conv_big5_wchar_flush()
12142 (*filter->flush_function)(filter->data); in mbfl_filt_conv_big5_wchar_flush()
12148 static int mbfl_filt_conv_wchar_big5(int c, mbfl_convert_filter *filter) in mbfl_filt_conv_wchar_big5() argument
12166 if (filter->to->no_encoding == mbfl_no_encoding_cp950) { in mbfl_filt_conv_wchar_big5()
12254 CK((*filter->output_function)(s, filter->data)); in mbfl_filt_conv_wchar_big5()
12256 CK((*filter->output_function)((s >> 8) & 0xff, filter->data)); in mbfl_filt_conv_wchar_big5()
12257 CK((*filter->output_function)(s & 0xff, filter->data)); in mbfl_filt_conv_wchar_big5()
12260 CK(mbfl_filt_conv_illegal_output(c, filter)); in mbfl_filt_conv_wchar_big5()
12613 static int mbfl_filt_conv_hz_wchar(int c, mbfl_convert_filter *filter) in mbfl_filt_conv_hz_wchar() argument
12617 switch (filter->status & 0xf) { in mbfl_filt_conv_hz_wchar()
12622 filter->status += 2; in mbfl_filt_conv_hz_wchar()
12623 } else if (filter->status == 0x10 && ((c > 0x20 && c <= 0x29) || (c >= 0x30 && c <= 0x77))) { in mbfl_filt_conv_hz_wchar()
12625 filter->cache = c; in mbfl_filt_conv_hz_wchar()
12626 filter->status += 1; in mbfl_filt_conv_hz_wchar()
12627 } else if (filter->status == 0 && c >= 0 && c < 0x80) { /* latin, CTLs */ in mbfl_filt_conv_hz_wchar()
12628 CK((*filter->output_function)(c, filter->data)); in mbfl_filt_conv_hz_wchar()
12630 CK((*filter->output_function)(MBFL_BAD_INPUT, filter->data)); in mbfl_filt_conv_hz_wchar()
12636 filter->status &= ~0xf; in mbfl_filt_conv_hz_wchar()
12637 c1 = filter->cache; in mbfl_filt_conv_hz_wchar()
12657 CK((*filter->output_function)(w, filter->data)); in mbfl_filt_conv_hz_wchar()
12659 CK((*filter->output_function)(MBFL_BAD_INPUT, filter->data)); in mbfl_filt_conv_hz_wchar()
12665 if (c == '}' && filter->status == 0x12) { in mbfl_filt_conv_hz_wchar()
12666 filter->status = 0; in mbfl_filt_conv_hz_wchar()
12667 } else if (c == '{' && filter->status == 2) { in mbfl_filt_conv_hz_wchar()
12668 filter->status = 0x10; in mbfl_filt_conv_hz_wchar()
12669 } else if (c == '~' && filter->status == 2) { in mbfl_filt_conv_hz_wchar()
12670 CK((*filter->output_function)('~', filter->data)); in mbfl_filt_conv_hz_wchar()
12671 filter->status -= 2; in mbfl_filt_conv_hz_wchar()
12674 filter->status -= 2; in mbfl_filt_conv_hz_wchar()
12677 filter->status -= 2; in mbfl_filt_conv_hz_wchar()
12678 CK((*filter->output_function)(MBFL_BAD_INPUT, filter->data)); in mbfl_filt_conv_hz_wchar()
12688 static int mbfl_filt_conv_hz_wchar_flush(mbfl_convert_filter *filter) in mbfl_filt_conv_hz_wchar_flush() argument
12690 if (filter->status == 0x11) { in mbfl_filt_conv_hz_wchar_flush()
12692 CK((*filter->output_function)(MBFL_BAD_INPUT, filter->data)); in mbfl_filt_conv_hz_wchar_flush()
12695 filter->status = 0; in mbfl_filt_conv_hz_wchar_flush()
12697 if (filter->flush_function) { in mbfl_filt_conv_hz_wchar_flush()
12698 (*filter->flush_function)(filter->data); in mbfl_filt_conv_hz_wchar_flush()
12704 static int mbfl_filt_conv_wchar_hz(int c, mbfl_convert_filter *filter) in mbfl_filt_conv_wchar_hz() argument
12761 if ((filter->status & 0xff00) != 0) { in mbfl_filt_conv_wchar_hz()
12762 CK((*filter->output_function)('~', filter->data)); in mbfl_filt_conv_wchar_hz()
12763 CK((*filter->output_function)('}', filter->data)); in mbfl_filt_conv_wchar_hz()
12765 filter->status = 0; in mbfl_filt_conv_wchar_hz()
12767 CK((*filter->output_function)('~', filter->data)); in mbfl_filt_conv_wchar_hz()
12769 CK((*filter->output_function)(s, filter->data)); in mbfl_filt_conv_wchar_hz()
12771 if ((filter->status & 0xFF00) != 0x200) { in mbfl_filt_conv_wchar_hz()
12772 CK((*filter->output_function)('~', filter->data)); in mbfl_filt_conv_wchar_hz()
12773 CK((*filter->output_function)('{', filter->data)); in mbfl_filt_conv_wchar_hz()
12775 filter->status = 0x200; in mbfl_filt_conv_wchar_hz()
12776 CK((*filter->output_function)((s >> 8) & 0x7F, filter->data)); in mbfl_filt_conv_wchar_hz()
12777 CK((*filter->output_function)(s & 0x7F, filter->data)); in mbfl_filt_conv_wchar_hz()
12780 CK(mbfl_filt_conv_illegal_output(c, filter)); in mbfl_filt_conv_wchar_hz()
12786 static int mbfl_filt_conv_any_hz_flush(mbfl_convert_filter *filter) in mbfl_filt_conv_any_hz_flush() argument
12789 if (filter->status & 0xFF00) { in mbfl_filt_conv_any_hz_flush()
12790 CK((*filter->output_function)('~', filter->data)); in mbfl_filt_conv_any_hz_flush()
12791 CK((*filter->output_function)('}', filter->data)); in mbfl_filt_conv_any_hz_flush()
12793 filter->status = 0; in mbfl_filt_conv_any_hz_flush()