Lines Matching refs:filter

207 int mbfl_filt_conv_jis2004_wchar(int c, mbfl_convert_filter *filter)  in mbfl_filt_conv_jis2004_wchar()  argument
212 switch (filter->status & 0xf) { in mbfl_filt_conv_jis2004_wchar()
215 if (filter->from->no_encoding == mbfl_no_encoding_eucjp2004) { in mbfl_filt_conv_jis2004_wchar()
216 CK((*filter->output_function)(c, filter->data)); in mbfl_filt_conv_jis2004_wchar()
217 } else if (filter->from->no_encoding == mbfl_no_encoding_sjis2004) { in mbfl_filt_conv_jis2004_wchar()
219 CK((*filter->output_function)(0x00a5, filter->data)); in mbfl_filt_conv_jis2004_wchar()
221 CK((*filter->output_function)(0x203e, filter->data)); in mbfl_filt_conv_jis2004_wchar()
223 CK((*filter->output_function)(c, filter->data)); in mbfl_filt_conv_jis2004_wchar()
227 filter->status += 6; in mbfl_filt_conv_jis2004_wchar()
228 } else if ((filter->status == 0x80 || filter->status == 0x90 || filter->status == 0xa0) in mbfl_filt_conv_jis2004_wchar()
230 filter->cache = c; in mbfl_filt_conv_jis2004_wchar()
231 if (filter->status == 0x90) { in mbfl_filt_conv_jis2004_wchar()
232 filter->status += 1; /* JIS X 0213 plane 1 */ in mbfl_filt_conv_jis2004_wchar()
233 } else if (filter->status == 0xa0) { in mbfl_filt_conv_jis2004_wchar()
234 filter->status += 4; /* JIS X 0213 plane 2 */ in mbfl_filt_conv_jis2004_wchar()
236 filter->status += 5; /* JIS X 0208 */ in mbfl_filt_conv_jis2004_wchar()
239 CK((*filter->output_function)(c, filter->data)); in mbfl_filt_conv_jis2004_wchar()
243 if (filter->from->no_encoding == mbfl_no_encoding_eucjp2004) { in mbfl_filt_conv_jis2004_wchar()
245 filter->status = 1; in mbfl_filt_conv_jis2004_wchar()
246 filter->cache = c; in mbfl_filt_conv_jis2004_wchar()
248 filter->cache = 0x8E; /* So error will be reported if input is truncated right here */ in mbfl_filt_conv_jis2004_wchar()
249 filter->status = 2; in mbfl_filt_conv_jis2004_wchar()
251 filter->status = 3; in mbfl_filt_conv_jis2004_wchar()
253 CK((*filter->output_function)(MBFL_BAD_INPUT, filter->data)); in mbfl_filt_conv_jis2004_wchar()
255 } else if (filter->from->no_encoding == mbfl_no_encoding_sjis2004) { in mbfl_filt_conv_jis2004_wchar()
257 CK((*filter->output_function)(0xfec0 + c, filter->data)); in mbfl_filt_conv_jis2004_wchar()
259 filter->status = 1; in mbfl_filt_conv_jis2004_wchar()
260 filter->cache = c; in mbfl_filt_conv_jis2004_wchar()
262 CK((*filter->output_function)(MBFL_BAD_INPUT, filter->data)); in mbfl_filt_conv_jis2004_wchar()
265 CK((*filter->output_function)(MBFL_BAD_INPUT, filter->data)); in mbfl_filt_conv_jis2004_wchar()
271 filter->status &= ~0xf; in mbfl_filt_conv_jis2004_wchar()
272 c1 = filter->cache; in mbfl_filt_conv_jis2004_wchar()
274 if (filter->from->no_encoding == mbfl_no_encoding_eucjp2004) { in mbfl_filt_conv_jis2004_wchar()
279 CK((*filter->output_function)(MBFL_BAD_INPUT, filter->data)); in mbfl_filt_conv_jis2004_wchar()
282 } else if (filter->from->no_encoding == mbfl_no_encoding_sjis2004) { in mbfl_filt_conv_jis2004_wchar()
286 CK((*filter->output_function)(MBFL_BAD_INPUT, filter->data)); in mbfl_filt_conv_jis2004_wchar()
294 CK((*filter->output_function)(MBFL_BAD_INPUT, filter->data)); in mbfl_filt_conv_jis2004_wchar()
307 CK((*filter->output_function)(w, filter->data)); in mbfl_filt_conv_jis2004_wchar()
332 CK((*filter->output_function)(w, filter->data)); in mbfl_filt_conv_jis2004_wchar()
336 filter->status = 0; in mbfl_filt_conv_jis2004_wchar()
339 CK((*filter->output_function)(w, filter->data)); in mbfl_filt_conv_jis2004_wchar()
341 CK((*filter->output_function)(MBFL_BAD_INPUT, filter->data)); in mbfl_filt_conv_jis2004_wchar()
347 filter->cache = c - 0x80; in mbfl_filt_conv_jis2004_wchar()
348 filter->status++; in mbfl_filt_conv_jis2004_wchar()
350 filter->status = 0; in mbfl_filt_conv_jis2004_wchar()
351 CK((*filter->output_function)(MBFL_BAD_INPUT, filter->data)); in mbfl_filt_conv_jis2004_wchar()
356 filter->status &= ~0xF; in mbfl_filt_conv_jis2004_wchar()
357 c1 = filter->cache; in mbfl_filt_conv_jis2004_wchar()
358 if (filter->from->no_encoding == mbfl_no_encoding_eucjp2004) { in mbfl_filt_conv_jis2004_wchar()
365 CK((*filter->output_function)(MBFL_BAD_INPUT, filter->data)); in mbfl_filt_conv_jis2004_wchar()
400 CK((*filter->output_function)(w, filter->data)); in mbfl_filt_conv_jis2004_wchar()
402 CK((*filter->output_function)(MBFL_BAD_INPUT, filter->data)); in mbfl_filt_conv_jis2004_wchar()
407 filter->status &= ~0xf; in mbfl_filt_conv_jis2004_wchar()
408 c1 = filter->cache; in mbfl_filt_conv_jis2004_wchar()
420 CK((*filter->output_function)(w, filter->data)); in mbfl_filt_conv_jis2004_wchar()
432 filter->status++; in mbfl_filt_conv_jis2004_wchar()
434 filter->status += 3; in mbfl_filt_conv_jis2004_wchar()
436 filter->status &= ~0xf; in mbfl_filt_conv_jis2004_wchar()
437 CK((*filter->output_function)(MBFL_BAD_INPUT, filter->data)); in mbfl_filt_conv_jis2004_wchar()
450 filter->status = 0x80; in mbfl_filt_conv_jis2004_wchar()
452 filter->status++; in mbfl_filt_conv_jis2004_wchar()
454 filter->status &= ~0xf; in mbfl_filt_conv_jis2004_wchar()
455 CK((*filter->output_function)(MBFL_BAD_INPUT, filter->data)); in mbfl_filt_conv_jis2004_wchar()
468 filter->status = 0x90; in mbfl_filt_conv_jis2004_wchar()
470 filter->status = 0xa0; in mbfl_filt_conv_jis2004_wchar()
472 filter->status &= ~0xf; in mbfl_filt_conv_jis2004_wchar()
473 CK((*filter->output_function)(MBFL_BAD_INPUT, filter->data)); in mbfl_filt_conv_jis2004_wchar()
485 filter->status = 0; in mbfl_filt_conv_jis2004_wchar()
487 filter->status &= ~0xf; in mbfl_filt_conv_jis2004_wchar()
488 CK((*filter->output_function)(MBFL_BAD_INPUT, filter->data)); in mbfl_filt_conv_jis2004_wchar()
498 int mbfl_filt_conv_jis2004_wchar_flush(mbfl_convert_filter *filter) in mbfl_filt_conv_jis2004_wchar_flush() argument
500 if (filter->status & 0xF) { in mbfl_filt_conv_jis2004_wchar_flush()
501 CK((*filter->output_function)(MBFL_BAD_INPUT, filter->data)); in mbfl_filt_conv_jis2004_wchar_flush()
503 filter->status = 0; in mbfl_filt_conv_jis2004_wchar_flush()
505 if (filter->flush_function) { in mbfl_filt_conv_jis2004_wchar_flush()
506 return (*filter->flush_function)(filter->data); in mbfl_filt_conv_jis2004_wchar_flush()
512 int mbfl_filt_conv_wchar_jis2004(int c, mbfl_convert_filter *filter) in mbfl_filt_conv_wchar_jis2004() argument
520 if ((filter->status & 0xf) == 0 && ( in mbfl_filt_conv_wchar_jis2004()
528 filter->status++; in mbfl_filt_conv_wchar_jis2004()
529 filter->cache = k; in mbfl_filt_conv_wchar_jis2004()
536 if ((filter->status & 0xf) == 1 && filter->cache >= 0 && filter->cache < jisx0213_u2_tbl_len) { in mbfl_filt_conv_wchar_jis2004()
537 k = filter->cache; in mbfl_filt_conv_wchar_jis2004()
538 filter->status &= ~0xf; in mbfl_filt_conv_wchar_jis2004()
539 filter->cache = 0; in mbfl_filt_conv_wchar_jis2004()
550 if (filter->to->no_encoding == mbfl_no_encoding_sjis2004) { in mbfl_filt_conv_wchar_jis2004()
554 } else if (filter->to->no_encoding == mbfl_no_encoding_eucjp2004) { in mbfl_filt_conv_wchar_jis2004()
558 if (filter->status != 0x200) { in mbfl_filt_conv_wchar_jis2004()
559 CK((*filter->output_function)(0x1b, filter->data)); in mbfl_filt_conv_wchar_jis2004()
560 CK((*filter->output_function)('$', filter->data)); in mbfl_filt_conv_wchar_jis2004()
561 CK((*filter->output_function)('(', filter->data)); in mbfl_filt_conv_wchar_jis2004()
562 CK((*filter->output_function)('Q', filter->data)); in mbfl_filt_conv_wchar_jis2004()
564 filter->status = 0x200; in mbfl_filt_conv_wchar_jis2004()
571 CK((*filter->output_function)(s1, filter->data)); in mbfl_filt_conv_wchar_jis2004()
572 CK((*filter->output_function)(s2, filter->data)); in mbfl_filt_conv_wchar_jis2004()
628 if (filter->to->no_encoding == mbfl_no_encoding_2022jp_2004 && (filter->status & 0xff00)) { in mbfl_filt_conv_wchar_jis2004()
629 CK((*filter->output_function)(0x1b, filter->data)); /* ESC */ in mbfl_filt_conv_wchar_jis2004()
630 CK((*filter->output_function)('(', filter->data)); in mbfl_filt_conv_wchar_jis2004()
631 CK((*filter->output_function)('B', filter->data)); in mbfl_filt_conv_wchar_jis2004()
633 filter->status = 0; in mbfl_filt_conv_wchar_jis2004()
634 CK((*filter->output_function)(s1, filter->data)); in mbfl_filt_conv_wchar_jis2004()
636 if (filter->to->no_encoding == mbfl_no_encoding_eucjp2004) { in mbfl_filt_conv_wchar_jis2004()
637 CK((*filter->output_function)(0x8e, filter->data)); in mbfl_filt_conv_wchar_jis2004()
638 CK((*filter->output_function)(s1, filter->data)); in mbfl_filt_conv_wchar_jis2004()
639 } else if (filter->to->no_encoding == mbfl_no_encoding_sjis2004 && (s1 >= 0xA1 && s1 <= 0xDF)) { in mbfl_filt_conv_wchar_jis2004()
640 CK((*filter->output_function)(s1, filter->data)); in mbfl_filt_conv_wchar_jis2004()
642 CK(mbfl_filt_conv_illegal_output(c, filter)); in mbfl_filt_conv_wchar_jis2004()
645 if (filter->to->no_encoding == mbfl_no_encoding_sjis2004) { in mbfl_filt_conv_wchar_jis2004()
649 } else if (filter->to->no_encoding == mbfl_no_encoding_eucjp2004) { in mbfl_filt_conv_wchar_jis2004()
653 if ((filter->status & 0xff00) != 0x200) { in mbfl_filt_conv_wchar_jis2004()
654 CK((*filter->output_function)(0x1b, filter->data)); /* ESC */ in mbfl_filt_conv_wchar_jis2004()
655 CK((*filter->output_function)('$', filter->data)); in mbfl_filt_conv_wchar_jis2004()
656 CK((*filter->output_function)('(', filter->data)); in mbfl_filt_conv_wchar_jis2004()
657 CK((*filter->output_function)('Q', filter->data)); in mbfl_filt_conv_wchar_jis2004()
659 filter->status = 0x200; in mbfl_filt_conv_wchar_jis2004()
663 CK((*filter->output_function)(s1, filter->data)); in mbfl_filt_conv_wchar_jis2004()
664 CK((*filter->output_function)(s2, filter->data)); in mbfl_filt_conv_wchar_jis2004()
666 if (filter->to->no_encoding == mbfl_no_encoding_sjis2004) { in mbfl_filt_conv_wchar_jis2004()
676 if (filter->to->no_encoding == mbfl_no_encoding_eucjp2004) { in mbfl_filt_conv_wchar_jis2004()
679 CK((*filter->output_function)(0x8f, filter->data)); in mbfl_filt_conv_wchar_jis2004()
681 if ((filter->status & 0xff00) != 0x200) { in mbfl_filt_conv_wchar_jis2004()
682 CK((*filter->output_function)(0x1b, filter->data)); /* ESC */ in mbfl_filt_conv_wchar_jis2004()
683 CK((*filter->output_function)('$', filter->data)); in mbfl_filt_conv_wchar_jis2004()
684 CK((*filter->output_function)('(', filter->data)); in mbfl_filt_conv_wchar_jis2004()
685 CK((*filter->output_function)('P', filter->data)); in mbfl_filt_conv_wchar_jis2004()
687 filter->status = 0x200; in mbfl_filt_conv_wchar_jis2004()
691 CK((*filter->output_function)(s1, filter->data)); in mbfl_filt_conv_wchar_jis2004()
692 CK((*filter->output_function)(s2, filter->data)); in mbfl_filt_conv_wchar_jis2004()
695 CK(mbfl_filt_conv_illegal_output(c, filter)); in mbfl_filt_conv_wchar_jis2004()
701 int mbfl_filt_conv_wchar_jis2004_flush(mbfl_convert_filter *filter) in mbfl_filt_conv_wchar_jis2004_flush() argument
705 k = filter->cache; in mbfl_filt_conv_wchar_jis2004_flush()
706 filter->cache = 0; in mbfl_filt_conv_wchar_jis2004_flush()
708 if (filter->status == 1 && k >= 0 && k <= jisx0213_u2_tbl_len) { in mbfl_filt_conv_wchar_jis2004_flush()
711 if (filter->to->no_encoding == mbfl_no_encoding_sjis2004) { in mbfl_filt_conv_wchar_jis2004_flush()
715 } else if (filter->to->no_encoding == mbfl_no_encoding_eucjp2004) { in mbfl_filt_conv_wchar_jis2004_flush()
721 if ((filter->status & 0xff00) != 0x200) { in mbfl_filt_conv_wchar_jis2004_flush()
722 CK((*filter->output_function)(0x1b, filter->data)); /* ESC */ in mbfl_filt_conv_wchar_jis2004_flush()
723 CK((*filter->output_function)('$', filter->data)); in mbfl_filt_conv_wchar_jis2004_flush()
724 CK((*filter->output_function)('(', filter->data)); in mbfl_filt_conv_wchar_jis2004_flush()
725 CK((*filter->output_function)('Q', filter->data)); in mbfl_filt_conv_wchar_jis2004_flush()
727 filter->status = 0x200; in mbfl_filt_conv_wchar_jis2004_flush()
730 CK((*filter->output_function)(s1, filter->data)); in mbfl_filt_conv_wchar_jis2004_flush()
731 CK((*filter->output_function)(s2, filter->data)); in mbfl_filt_conv_wchar_jis2004_flush()
737 if (filter->status & 0xff00) { in mbfl_filt_conv_wchar_jis2004_flush()
738 CK((*filter->output_function)(0x1b, filter->data)); /* ESC */ in mbfl_filt_conv_wchar_jis2004_flush()
739 CK((*filter->output_function)('(', filter->data)); in mbfl_filt_conv_wchar_jis2004_flush()
740 CK((*filter->output_function)('B', filter->data)); in mbfl_filt_conv_wchar_jis2004_flush()
743 filter->status = 0; in mbfl_filt_conv_wchar_jis2004_flush()
745 if (filter->flush_function) { in mbfl_filt_conv_wchar_jis2004_flush()
746 return (*filter->flush_function)(filter->data); in mbfl_filt_conv_wchar_jis2004_flush()