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 CK(mbfl_filt_conv_illegal_output(c, filter)); in mbfl_filt_conv_wchar_jis()
395 mbfl_filt_conv_wchar_2022jp(int c, mbfl_convert_filter *filter) in mbfl_filt_conv_wchar_2022jp() argument
439 if ((filter->status & 0xff00) != 0) { in mbfl_filt_conv_wchar_2022jp()
440 CK((*filter->output_function)(0x1b, filter->data)); /* ESC */ in mbfl_filt_conv_wchar_2022jp()
441 CK((*filter->output_function)(0x28, filter->data)); /* '(' */ in mbfl_filt_conv_wchar_2022jp()
442 CK((*filter->output_function)(0x42, filter->data)); /* 'B' */ in mbfl_filt_conv_wchar_2022jp()
444 filter->status = 0; in mbfl_filt_conv_wchar_2022jp()
445 CK((*filter->output_function)(s, filter->data)); in mbfl_filt_conv_wchar_2022jp()
447 if ((filter->status & 0xff00) != 0x200) { in mbfl_filt_conv_wchar_2022jp()
448 CK((*filter->output_function)(0x1b, filter->data)); /* ESC */ in mbfl_filt_conv_wchar_2022jp()
449 CK((*filter->output_function)(0x24, filter->data)); /* '$' */ in mbfl_filt_conv_wchar_2022jp()
450 CK((*filter->output_function)(0x42, filter->data)); /* 'B' */ in mbfl_filt_conv_wchar_2022jp()
452 filter->status = 0x200; in mbfl_filt_conv_wchar_2022jp()
453 CK((*filter->output_function)((s >> 8) & 0x7f, filter->data)); in mbfl_filt_conv_wchar_2022jp()
454 CK((*filter->output_function)(s & 0x7f, filter->data)); in mbfl_filt_conv_wchar_2022jp()
456 if ((filter->status & 0xff00) != 0x400) { in mbfl_filt_conv_wchar_2022jp()
457 CK((*filter->output_function)(0x1b, filter->data)); /* ESC */ in mbfl_filt_conv_wchar_2022jp()
458 CK((*filter->output_function)(0x28, filter->data)); /* '(' */ in mbfl_filt_conv_wchar_2022jp()
459 CK((*filter->output_function)(0x4a, filter->data)); /* 'J' */ in mbfl_filt_conv_wchar_2022jp()
461 filter->status = 0x400; in mbfl_filt_conv_wchar_2022jp()
462 CK((*filter->output_function)(s & 0x7f, filter->data)); in mbfl_filt_conv_wchar_2022jp()
465 CK(mbfl_filt_conv_illegal_output(c, filter)); in mbfl_filt_conv_wchar_2022jp()
472 mbfl_filt_conv_any_jis_flush(mbfl_convert_filter *filter) in mbfl_filt_conv_any_jis_flush() argument
475 if ((filter->status & 0xff00) != 0) { in mbfl_filt_conv_any_jis_flush()
476 CK((*filter->output_function)(0x1b, filter->data)); /* ESC */ in mbfl_filt_conv_any_jis_flush()
477 CK((*filter->output_function)(0x28, filter->data)); /* '(' */ in mbfl_filt_conv_any_jis_flush()
478 CK((*filter->output_function)(0x42, filter->data)); /* 'B' */ in mbfl_filt_conv_any_jis_flush()
480 filter->status &= 0xff; in mbfl_filt_conv_any_jis_flush()
482 if (filter->flush_function != NULL) { in mbfl_filt_conv_any_jis_flush()
483 return (*filter->flush_function)(filter->data); in mbfl_filt_conv_any_jis_flush()
489 static int mbfl_filt_ident_jis(int c, mbfl_identify_filter *filter) in mbfl_filt_ident_jis() argument
492 switch (filter->status & 0xf) { in mbfl_filt_ident_jis()
500 filter->status += 2; in mbfl_filt_ident_jis()
502 filter->status = 0x20; in mbfl_filt_ident_jis()
504 filter->status = 0; in mbfl_filt_ident_jis()
505 …} else if ((filter->status == 0x80 || filter->status == 0x90) && c > 0x20 && c < 0x7f) { /* kanji… in mbfl_filt_ident_jis()
506 filter->status += 1; in mbfl_filt_ident_jis()
510 filter->flag = 1; /* bad */ in mbfl_filt_ident_jis()
517 filter->status &= ~0xf; in mbfl_filt_ident_jis()
521 filter->flag = 1; in mbfl_filt_ident_jis()
528 filter->status++; in mbfl_filt_ident_jis()
530 filter->status += 3; in mbfl_filt_ident_jis()
532 filter->flag = 1; /* bad */ in mbfl_filt_ident_jis()
533 filter->status &= ~0xf; in mbfl_filt_ident_jis()
541 filter->status = 0x80; in mbfl_filt_ident_jis()
543 filter->status++; in mbfl_filt_ident_jis()
545 filter->flag = 1; /* bad */ in mbfl_filt_ident_jis()
546 filter->status &= ~0xf; in mbfl_filt_ident_jis()
554 filter->status = 0x80; in mbfl_filt_ident_jis()
556 filter->status = 0x90; in mbfl_filt_ident_jis()
558 filter->flag = 1; /* bad */ in mbfl_filt_ident_jis()
559 filter->status &= ~0xf; in mbfl_filt_ident_jis()
567 filter->status = 0; in mbfl_filt_ident_jis()
569 filter->status = 0x10; in mbfl_filt_ident_jis()
571 filter->status = 0x20; in mbfl_filt_ident_jis()
573 filter->flag = 1; /* bad */ in mbfl_filt_ident_jis()
574 filter->status &= ~0xf; in mbfl_filt_ident_jis()
580 filter->status = 0; in mbfl_filt_ident_jis()
587 static int mbfl_filt_ident_2022jp(int c, mbfl_identify_filter *filter) in mbfl_filt_ident_2022jp() argument
590 switch (filter->status & 0xf) { in mbfl_filt_ident_2022jp()
596 filter->status += 2; in mbfl_filt_ident_2022jp()
597 } else if (filter->status == 0x80 && c > 0x20 && c < 0x7f) { /* kanji first char */ in mbfl_filt_ident_2022jp()
598 filter->status += 1; in mbfl_filt_ident_2022jp()
602 filter->flag = 1; /* bad */ in mbfl_filt_ident_2022jp()
609 filter->status++; in mbfl_filt_ident_2022jp()
611 filter->status &= ~0xf; in mbfl_filt_ident_2022jp()
613 filter->flag = 1; in mbfl_filt_ident_2022jp()
621 filter->status++; in mbfl_filt_ident_2022jp()
623 filter->status += 3; in mbfl_filt_ident_2022jp()
625 filter->flag = 1; /* bad */ in mbfl_filt_ident_2022jp()
626 filter->status &= ~0xf; in mbfl_filt_ident_2022jp()
634 filter->status = 0x80; in mbfl_filt_ident_2022jp()
636 filter->flag = 1; /* bad */ in mbfl_filt_ident_2022jp()
637 filter->status &= ~0xf; in mbfl_filt_ident_2022jp()
645 filter->status = 0; in mbfl_filt_ident_2022jp()
647 filter->status = 0x10; in mbfl_filt_ident_2022jp()
649 filter->flag = 1; /* bad */ in mbfl_filt_ident_2022jp()
650 filter->status &= ~0xf; in mbfl_filt_ident_2022jp()
656 filter->status = 0; in mbfl_filt_ident_2022jp()