Lines Matching refs:filter

40 static int mbfl_filt_ident_jis(int c, mbfl_identify_filter *filter);
41 static int mbfl_filt_ident_2022jp(int c, mbfl_identify_filter *filter);
121 mbfl_filt_conv_jis_wchar(int c, mbfl_convert_filter *filter) in mbfl_filt_conv_jis_wchar() argument
126 switch (filter->status & 0xf) { in mbfl_filt_conv_jis_wchar()
134 filter->status += 2; in mbfl_filt_conv_jis_wchar()
136 filter->status = 0x20; in mbfl_filt_conv_jis_wchar()
138 filter->status = 0; in mbfl_filt_conv_jis_wchar()
139 } else if (filter->status == 0x10 && c == 0x5c) { /* YEN SIGN */ in mbfl_filt_conv_jis_wchar()
140 CK((*filter->output_function)(0xa5, filter->data)); in mbfl_filt_conv_jis_wchar()
141 } else if (filter->status == 0x10 && c == 0x7e) { /* OVER LINE */ in mbfl_filt_conv_jis_wchar()
142 CK((*filter->output_function)(0x203e, filter->data)); in mbfl_filt_conv_jis_wchar()
143 } else if (filter->status == 0x20 && c > 0x20 && c < 0x60) { /* kana */ in mbfl_filt_conv_jis_wchar()
144 CK((*filter->output_function)(0xff40 + c, filter->data)); in mbfl_filt_conv_jis_wchar()
145 …} else if ((filter->status == 0x80 || filter->status == 0x90) && c > 0x20 && c < 0x7f) { /* kanji… in mbfl_filt_conv_jis_wchar()
146 filter->cache = c; in mbfl_filt_conv_jis_wchar()
147 filter->status += 1; in mbfl_filt_conv_jis_wchar()
149 CK((*filter->output_function)(c, filter->data)); in mbfl_filt_conv_jis_wchar()
151 CK((*filter->output_function)(0xfec0 + c, filter->data)); in mbfl_filt_conv_jis_wchar()
155 CK((*filter->output_function)(w, filter->data)); in mbfl_filt_conv_jis_wchar()
162 filter->status &= ~0xf; in mbfl_filt_conv_jis_wchar()
163 c1 = filter->cache; in mbfl_filt_conv_jis_wchar()
166 if (filter->status == 0x80) { in mbfl_filt_conv_jis_wchar()
189 CK((*filter->output_function)(w, filter->data)); in mbfl_filt_conv_jis_wchar()
191 filter->status += 2; in mbfl_filt_conv_jis_wchar()
193 CK((*filter->output_function)(c, filter->data)); in mbfl_filt_conv_jis_wchar()
198 CK((*filter->output_function)(w, filter->data)); in mbfl_filt_conv_jis_wchar()
210 filter->status++; in mbfl_filt_conv_jis_wchar()
212 filter->status += 3; in mbfl_filt_conv_jis_wchar()
214 filter->status &= ~0xf; in mbfl_filt_conv_jis_wchar()
215 CK((*filter->output_function)(0x1b, filter->data)); in mbfl_filt_conv_jis_wchar()
228 filter->status = 0x80; in mbfl_filt_conv_jis_wchar()
230 filter->status++; in mbfl_filt_conv_jis_wchar()
232 filter->status &= ~0xf; in mbfl_filt_conv_jis_wchar()
233 CK((*filter->output_function)(0x1b, filter->data)); in mbfl_filt_conv_jis_wchar()
234 CK((*filter->output_function)(0x24, filter->data)); in mbfl_filt_conv_jis_wchar()
247 filter->status = 0x80; in mbfl_filt_conv_jis_wchar()
249 filter->status = 0x90; in mbfl_filt_conv_jis_wchar()
251 filter->status &= ~0xf; in mbfl_filt_conv_jis_wchar()
252 CK((*filter->output_function)(0x1b, filter->data)); in mbfl_filt_conv_jis_wchar()
253 CK((*filter->output_function)(0x24, filter->data)); in mbfl_filt_conv_jis_wchar()
254 CK((*filter->output_function)(0x28, filter->data)); in mbfl_filt_conv_jis_wchar()
267 filter->status = 0; in mbfl_filt_conv_jis_wchar()
269 filter->status = 0x10; in mbfl_filt_conv_jis_wchar()
271 filter->status = 0x20; in mbfl_filt_conv_jis_wchar()
273 filter->status &= ~0xf; in mbfl_filt_conv_jis_wchar()
274 CK((*filter->output_function)(0x1b, filter->data)); in mbfl_filt_conv_jis_wchar()
275 CK((*filter->output_function)(0x28, filter->data)); in mbfl_filt_conv_jis_wchar()
281 filter->status = 0; in mbfl_filt_conv_jis_wchar()
292 mbfl_filt_conv_wchar_jis(int c, mbfl_convert_filter *filter) in mbfl_filt_conv_wchar_jis() argument
340 if ((filter->status & 0xff00) != 0) { in mbfl_filt_conv_wchar_jis()
341 CK((*filter->output_function)(0x1b, filter->data)); /* ESC */ in mbfl_filt_conv_wchar_jis()
342 CK((*filter->output_function)(0x28, filter->data)); /* '(' */ in mbfl_filt_conv_wchar_jis()
343 CK((*filter->output_function)(0x42, filter->data)); /* 'B' */ in mbfl_filt_conv_wchar_jis()
345 filter->status = 0; in mbfl_filt_conv_wchar_jis()
346 CK((*filter->output_function)(s, filter->data)); in mbfl_filt_conv_wchar_jis()
348 if ((filter->status & 0xff00) != 0x100) { in mbfl_filt_conv_wchar_jis()
349 CK((*filter->output_function)(0x1b, filter->data)); /* ESC */ in mbfl_filt_conv_wchar_jis()
350 CK((*filter->output_function)(0x28, filter->data)); /* '(' */ in mbfl_filt_conv_wchar_jis()
351 CK((*filter->output_function)(0x49, filter->data)); /* 'I' */ in mbfl_filt_conv_wchar_jis()
353 filter->status = 0x100; in mbfl_filt_conv_wchar_jis()
354 CK((*filter->output_function)(s & 0x7f, filter->data)); in mbfl_filt_conv_wchar_jis()
356 if ((filter->status & 0xff00) != 0x200) { in mbfl_filt_conv_wchar_jis()
357 CK((*filter->output_function)(0x1b, filter->data)); /* ESC */ in mbfl_filt_conv_wchar_jis()
358 CK((*filter->output_function)(0x24, filter->data)); /* '$' */ in mbfl_filt_conv_wchar_jis()
359 CK((*filter->output_function)(0x42, filter->data)); /* 'B' */ in mbfl_filt_conv_wchar_jis()
361 filter->status = 0x200; in mbfl_filt_conv_wchar_jis()
362 CK((*filter->output_function)((s >> 8) & 0x7f, filter->data)); in mbfl_filt_conv_wchar_jis()
363 CK((*filter->output_function)(s & 0x7f, filter->data)); in mbfl_filt_conv_wchar_jis()
365 if ((filter->status & 0xff00) != 0x300) { in mbfl_filt_conv_wchar_jis()
366 CK((*filter->output_function)(0x1b, filter->data)); /* ESC */ in mbfl_filt_conv_wchar_jis()
367 CK((*filter->output_function)(0x24, filter->data)); /* '$' */ in mbfl_filt_conv_wchar_jis()
368 CK((*filter->output_function)(0x28, filter->data)); /* '(' */ in mbfl_filt_conv_wchar_jis()
369 CK((*filter->output_function)(0x44, filter->data)); /* 'D' */ in mbfl_filt_conv_wchar_jis()
371 filter->status = 0x300; in mbfl_filt_conv_wchar_jis()
372 CK((*filter->output_function)((s >> 8) & 0x7f, filter->data)); in mbfl_filt_conv_wchar_jis()
373 CK((*filter->output_function)(s & 0x7f, filter->data)); in mbfl_filt_conv_wchar_jis()
375 if ((filter->status & 0xff00) != 0x400) { in mbfl_filt_conv_wchar_jis()
376 CK((*filter->output_function)(0x1b, filter->data)); /* ESC */ in mbfl_filt_conv_wchar_jis()
377 CK((*filter->output_function)(0x28, filter->data)); /* '(' */ in mbfl_filt_conv_wchar_jis()
378 CK((*filter->output_function)(0x4a, filter->data)); /* 'J' */ in mbfl_filt_conv_wchar_jis()
380 filter->status = 0x400; in mbfl_filt_conv_wchar_jis()
381 CK((*filter->output_function)(s & 0x7f, filter->data)); in mbfl_filt_conv_wchar_jis()
384 if (filter->illegal_mode != MBFL_OUTPUTFILTER_ILLEGAL_MODE_NONE) { in mbfl_filt_conv_wchar_jis()
385 CK(mbfl_filt_conv_illegal_output(c, filter)); in mbfl_filt_conv_wchar_jis()
397 mbfl_filt_conv_wchar_2022jp(int c, mbfl_convert_filter *filter) in mbfl_filt_conv_wchar_2022jp() argument
441 if ((filter->status & 0xff00) != 0) { in mbfl_filt_conv_wchar_2022jp()
442 CK((*filter->output_function)(0x1b, filter->data)); /* ESC */ in mbfl_filt_conv_wchar_2022jp()
443 CK((*filter->output_function)(0x28, filter->data)); /* '(' */ in mbfl_filt_conv_wchar_2022jp()
444 CK((*filter->output_function)(0x42, filter->data)); /* 'B' */ in mbfl_filt_conv_wchar_2022jp()
446 filter->status = 0; in mbfl_filt_conv_wchar_2022jp()
447 CK((*filter->output_function)(s, filter->data)); in mbfl_filt_conv_wchar_2022jp()
449 if ((filter->status & 0xff00) != 0x200) { in mbfl_filt_conv_wchar_2022jp()
450 CK((*filter->output_function)(0x1b, filter->data)); /* ESC */ in mbfl_filt_conv_wchar_2022jp()
451 CK((*filter->output_function)(0x24, filter->data)); /* '$' */ in mbfl_filt_conv_wchar_2022jp()
452 CK((*filter->output_function)(0x42, filter->data)); /* 'B' */ in mbfl_filt_conv_wchar_2022jp()
454 filter->status = 0x200; in mbfl_filt_conv_wchar_2022jp()
455 CK((*filter->output_function)((s >> 8) & 0x7f, filter->data)); in mbfl_filt_conv_wchar_2022jp()
456 CK((*filter->output_function)(s & 0x7f, filter->data)); in mbfl_filt_conv_wchar_2022jp()
458 if ((filter->status & 0xff00) != 0x400) { in mbfl_filt_conv_wchar_2022jp()
459 CK((*filter->output_function)(0x1b, filter->data)); /* ESC */ in mbfl_filt_conv_wchar_2022jp()
460 CK((*filter->output_function)(0x28, filter->data)); /* '(' */ in mbfl_filt_conv_wchar_2022jp()
461 CK((*filter->output_function)(0x4a, filter->data)); /* 'J' */ in mbfl_filt_conv_wchar_2022jp()
463 filter->status = 0x400; in mbfl_filt_conv_wchar_2022jp()
464 CK((*filter->output_function)(s & 0x7f, filter->data)); in mbfl_filt_conv_wchar_2022jp()
467 if (filter->illegal_mode != MBFL_OUTPUTFILTER_ILLEGAL_MODE_NONE) { in mbfl_filt_conv_wchar_2022jp()
468 CK(mbfl_filt_conv_illegal_output(c, filter)); in mbfl_filt_conv_wchar_2022jp()
476 mbfl_filt_conv_any_jis_flush(mbfl_convert_filter *filter) in mbfl_filt_conv_any_jis_flush() argument
479 if ((filter->status & 0xff00) != 0) { in mbfl_filt_conv_any_jis_flush()
480 CK((*filter->output_function)(0x1b, filter->data)); /* ESC */ in mbfl_filt_conv_any_jis_flush()
481 CK((*filter->output_function)(0x28, filter->data)); /* '(' */ in mbfl_filt_conv_any_jis_flush()
482 CK((*filter->output_function)(0x42, filter->data)); /* 'B' */ in mbfl_filt_conv_any_jis_flush()
484 filter->status &= 0xff; in mbfl_filt_conv_any_jis_flush()
486 if (filter->flush_function != NULL) { in mbfl_filt_conv_any_jis_flush()
487 return (*filter->flush_function)(filter->data); in mbfl_filt_conv_any_jis_flush()
493 static int mbfl_filt_ident_jis(int c, mbfl_identify_filter *filter) in mbfl_filt_ident_jis() argument
496 switch (filter->status & 0xf) { in mbfl_filt_ident_jis()
504 filter->status += 2; in mbfl_filt_ident_jis()
506 filter->status = 0x20; in mbfl_filt_ident_jis()
508 filter->status = 0; in mbfl_filt_ident_jis()
509 …} else if ((filter->status == 0x80 || filter->status == 0x90) && c > 0x20 && c < 0x7f) { /* kanji… in mbfl_filt_ident_jis()
510 filter->status += 1; in mbfl_filt_ident_jis()
514 filter->flag = 1; /* bad */ in mbfl_filt_ident_jis()
521 filter->status &= ~0xf; in mbfl_filt_ident_jis()
525 filter->flag = 1; in mbfl_filt_ident_jis()
532 filter->status++; in mbfl_filt_ident_jis()
534 filter->status += 3; in mbfl_filt_ident_jis()
536 filter->flag = 1; /* bad */ in mbfl_filt_ident_jis()
537 filter->status &= ~0xf; in mbfl_filt_ident_jis()
545 filter->status = 0x80; in mbfl_filt_ident_jis()
547 filter->status++; in mbfl_filt_ident_jis()
549 filter->flag = 1; /* bad */ in mbfl_filt_ident_jis()
550 filter->status &= ~0xf; in mbfl_filt_ident_jis()
558 filter->status = 0x80; in mbfl_filt_ident_jis()
560 filter->status = 0x90; in mbfl_filt_ident_jis()
562 filter->flag = 1; /* bad */ in mbfl_filt_ident_jis()
563 filter->status &= ~0xf; in mbfl_filt_ident_jis()
571 filter->status = 0; in mbfl_filt_ident_jis()
573 filter->status = 0x10; in mbfl_filt_ident_jis()
575 filter->status = 0x20; in mbfl_filt_ident_jis()
577 filter->flag = 1; /* bad */ in mbfl_filt_ident_jis()
578 filter->status &= ~0xf; in mbfl_filt_ident_jis()
584 filter->status = 0; in mbfl_filt_ident_jis()
591 static int mbfl_filt_ident_2022jp(int c, mbfl_identify_filter *filter) in mbfl_filt_ident_2022jp() argument
594 switch (filter->status & 0xf) { in mbfl_filt_ident_2022jp()
600 filter->status += 2; in mbfl_filt_ident_2022jp()
601 } else if (filter->status == 0x80 && c > 0x20 && c < 0x7f) { /* kanji first char */ in mbfl_filt_ident_2022jp()
602 filter->status += 1; in mbfl_filt_ident_2022jp()
606 filter->flag = 1; /* bad */ in mbfl_filt_ident_2022jp()
613 filter->status++; in mbfl_filt_ident_2022jp()
615 filter->status &= ~0xf; in mbfl_filt_ident_2022jp()
617 filter->flag = 1; in mbfl_filt_ident_2022jp()
625 filter->status++; in mbfl_filt_ident_2022jp()
627 filter->status += 3; in mbfl_filt_ident_2022jp()
629 filter->flag = 1; /* bad */ in mbfl_filt_ident_2022jp()
630 filter->status &= ~0xf; in mbfl_filt_ident_2022jp()
638 filter->status = 0x80; in mbfl_filt_ident_2022jp()
640 filter->flag = 1; /* bad */ in mbfl_filt_ident_2022jp()
641 filter->status &= ~0xf; in mbfl_filt_ident_2022jp()
649 filter->status = 0; in mbfl_filt_ident_2022jp()
651 filter->status = 0x10; in mbfl_filt_ident_2022jp()
653 filter->flag = 1; /* bad */ in mbfl_filt_ident_2022jp()
654 filter->status &= ~0xf; in mbfl_filt_ident_2022jp()
660 filter->status = 0; in mbfl_filt_ident_2022jp()