Lines Matching refs:filter

36 static int mbfl_filt_ident_jis(int c, mbfl_identify_filter *filter);
37 static int mbfl_filt_ident_2022jp(int c, mbfl_identify_filter *filter);
119 mbfl_filt_conv_jis_wchar(int c, mbfl_convert_filter *filter) in mbfl_filt_conv_jis_wchar() argument
124 switch (filter->status & 0xf) { in mbfl_filt_conv_jis_wchar()
132 filter->status += 2; in mbfl_filt_conv_jis_wchar()
134 filter->status = 0x20; in mbfl_filt_conv_jis_wchar()
136 filter->status = 0; in mbfl_filt_conv_jis_wchar()
137 } else if (filter->status == 0x10 && c == 0x5c) { /* YEN SIGN */ in mbfl_filt_conv_jis_wchar()
138 CK((*filter->output_function)(0xa5, filter->data)); in mbfl_filt_conv_jis_wchar()
139 } else if (filter->status == 0x10 && c == 0x7e) { /* OVER LINE */ in mbfl_filt_conv_jis_wchar()
140 CK((*filter->output_function)(0x203e, filter->data)); in mbfl_filt_conv_jis_wchar()
141 } else if (filter->status == 0x20 && c > 0x20 && c < 0x60) { /* kana */ in mbfl_filt_conv_jis_wchar()
142 CK((*filter->output_function)(0xff40 + c, filter->data)); in mbfl_filt_conv_jis_wchar()
143 …} else if ((filter->status == 0x80 || filter->status == 0x90) && c > 0x20 && c < 0x7f) { /* kanji… in mbfl_filt_conv_jis_wchar()
144 filter->cache = c; in mbfl_filt_conv_jis_wchar()
145 filter->status += 1; in mbfl_filt_conv_jis_wchar()
147 CK((*filter->output_function)(c, filter->data)); in mbfl_filt_conv_jis_wchar()
149 CK((*filter->output_function)(0xfec0 + c, filter->data)); in mbfl_filt_conv_jis_wchar()
153 CK((*filter->output_function)(w, filter->data)); in mbfl_filt_conv_jis_wchar()
160 filter->status &= ~0xf; in mbfl_filt_conv_jis_wchar()
161 c1 = filter->cache; in mbfl_filt_conv_jis_wchar()
164 if (filter->status == 0x80) { in mbfl_filt_conv_jis_wchar()
187 CK((*filter->output_function)(w, filter->data)); in mbfl_filt_conv_jis_wchar()
189 filter->status += 2; in mbfl_filt_conv_jis_wchar()
191 CK((*filter->output_function)(c, filter->data)); in mbfl_filt_conv_jis_wchar()
196 CK((*filter->output_function)(w, filter->data)); in mbfl_filt_conv_jis_wchar()
208 filter->status++; in mbfl_filt_conv_jis_wchar()
210 filter->status += 3; in mbfl_filt_conv_jis_wchar()
212 filter->status &= ~0xf; in mbfl_filt_conv_jis_wchar()
213 CK((*filter->output_function)(0x1b, filter->data)); in mbfl_filt_conv_jis_wchar()
226 filter->status = 0x80; in mbfl_filt_conv_jis_wchar()
228 filter->status++; in mbfl_filt_conv_jis_wchar()
230 filter->status &= ~0xf; in mbfl_filt_conv_jis_wchar()
231 CK((*filter->output_function)(0x1b, filter->data)); in mbfl_filt_conv_jis_wchar()
232 CK((*filter->output_function)(0x24, filter->data)); in mbfl_filt_conv_jis_wchar()
245 filter->status = 0x80; in mbfl_filt_conv_jis_wchar()
247 filter->status = 0x90; in mbfl_filt_conv_jis_wchar()
249 filter->status &= ~0xf; in mbfl_filt_conv_jis_wchar()
250 CK((*filter->output_function)(0x1b, filter->data)); in mbfl_filt_conv_jis_wchar()
251 CK((*filter->output_function)(0x24, filter->data)); in mbfl_filt_conv_jis_wchar()
252 CK((*filter->output_function)(0x28, filter->data)); in mbfl_filt_conv_jis_wchar()
265 filter->status = 0; in mbfl_filt_conv_jis_wchar()
267 filter->status = 0x10; in mbfl_filt_conv_jis_wchar()
269 filter->status = 0x20; in mbfl_filt_conv_jis_wchar()
271 filter->status &= ~0xf; in mbfl_filt_conv_jis_wchar()
272 CK((*filter->output_function)(0x1b, filter->data)); in mbfl_filt_conv_jis_wchar()
273 CK((*filter->output_function)(0x28, filter->data)); in mbfl_filt_conv_jis_wchar()
279 filter->status = 0; in mbfl_filt_conv_jis_wchar()
290 mbfl_filt_conv_wchar_jis(int c, mbfl_convert_filter *filter) in mbfl_filt_conv_wchar_jis() argument
338 if ((filter->status & 0xff00) != 0) { in mbfl_filt_conv_wchar_jis()
339 CK((*filter->output_function)(0x1b, filter->data)); /* ESC */ in mbfl_filt_conv_wchar_jis()
340 CK((*filter->output_function)(0x28, filter->data)); /* '(' */ in mbfl_filt_conv_wchar_jis()
341 CK((*filter->output_function)(0x42, filter->data)); /* 'B' */ in mbfl_filt_conv_wchar_jis()
343 filter->status = 0; in mbfl_filt_conv_wchar_jis()
344 CK((*filter->output_function)(s, filter->data)); in mbfl_filt_conv_wchar_jis()
346 if ((filter->status & 0xff00) != 0x100) { in mbfl_filt_conv_wchar_jis()
347 CK((*filter->output_function)(0x1b, filter->data)); /* ESC */ in mbfl_filt_conv_wchar_jis()
348 CK((*filter->output_function)(0x28, filter->data)); /* '(' */ in mbfl_filt_conv_wchar_jis()
349 CK((*filter->output_function)(0x49, filter->data)); /* 'I' */ in mbfl_filt_conv_wchar_jis()
351 filter->status = 0x100; in mbfl_filt_conv_wchar_jis()
352 CK((*filter->output_function)(s & 0x7f, filter->data)); in mbfl_filt_conv_wchar_jis()
354 if ((filter->status & 0xff00) != 0x200) { in mbfl_filt_conv_wchar_jis()
355 CK((*filter->output_function)(0x1b, filter->data)); /* ESC */ in mbfl_filt_conv_wchar_jis()
356 CK((*filter->output_function)(0x24, filter->data)); /* '$' */ in mbfl_filt_conv_wchar_jis()
357 CK((*filter->output_function)(0x42, filter->data)); /* 'B' */ in mbfl_filt_conv_wchar_jis()
359 filter->status = 0x200; in mbfl_filt_conv_wchar_jis()
360 CK((*filter->output_function)((s >> 8) & 0x7f, filter->data)); in mbfl_filt_conv_wchar_jis()
361 CK((*filter->output_function)(s & 0x7f, filter->data)); in mbfl_filt_conv_wchar_jis()
363 if ((filter->status & 0xff00) != 0x300) { in mbfl_filt_conv_wchar_jis()
364 CK((*filter->output_function)(0x1b, filter->data)); /* ESC */ in mbfl_filt_conv_wchar_jis()
365 CK((*filter->output_function)(0x24, filter->data)); /* '$' */ in mbfl_filt_conv_wchar_jis()
366 CK((*filter->output_function)(0x28, filter->data)); /* '(' */ in mbfl_filt_conv_wchar_jis()
367 CK((*filter->output_function)(0x44, filter->data)); /* 'D' */ in mbfl_filt_conv_wchar_jis()
369 filter->status = 0x300; in mbfl_filt_conv_wchar_jis()
370 CK((*filter->output_function)((s >> 8) & 0x7f, filter->data)); in mbfl_filt_conv_wchar_jis()
371 CK((*filter->output_function)(s & 0x7f, filter->data)); in mbfl_filt_conv_wchar_jis()
373 if ((filter->status & 0xff00) != 0x400) { in mbfl_filt_conv_wchar_jis()
374 CK((*filter->output_function)(0x1b, filter->data)); /* ESC */ in mbfl_filt_conv_wchar_jis()
375 CK((*filter->output_function)(0x28, filter->data)); /* '(' */ in mbfl_filt_conv_wchar_jis()
376 CK((*filter->output_function)(0x4a, filter->data)); /* 'J' */ in mbfl_filt_conv_wchar_jis()
378 filter->status = 0x400; in mbfl_filt_conv_wchar_jis()
379 CK((*filter->output_function)(s & 0x7f, filter->data)); in mbfl_filt_conv_wchar_jis()
382 CK(mbfl_filt_conv_illegal_output(c, filter)); in mbfl_filt_conv_wchar_jis()
393 mbfl_filt_conv_wchar_2022jp(int c, mbfl_convert_filter *filter) in mbfl_filt_conv_wchar_2022jp() argument
437 if ((filter->status & 0xff00) != 0) { in mbfl_filt_conv_wchar_2022jp()
438 CK((*filter->output_function)(0x1b, filter->data)); /* ESC */ in mbfl_filt_conv_wchar_2022jp()
439 CK((*filter->output_function)(0x28, filter->data)); /* '(' */ in mbfl_filt_conv_wchar_2022jp()
440 CK((*filter->output_function)(0x42, filter->data)); /* 'B' */ in mbfl_filt_conv_wchar_2022jp()
442 filter->status = 0; in mbfl_filt_conv_wchar_2022jp()
443 CK((*filter->output_function)(s, filter->data)); in mbfl_filt_conv_wchar_2022jp()
445 if ((filter->status & 0xff00) != 0x200) { in mbfl_filt_conv_wchar_2022jp()
446 CK((*filter->output_function)(0x1b, filter->data)); /* ESC */ in mbfl_filt_conv_wchar_2022jp()
447 CK((*filter->output_function)(0x24, filter->data)); /* '$' */ in mbfl_filt_conv_wchar_2022jp()
448 CK((*filter->output_function)(0x42, filter->data)); /* 'B' */ in mbfl_filt_conv_wchar_2022jp()
450 filter->status = 0x200; in mbfl_filt_conv_wchar_2022jp()
451 CK((*filter->output_function)((s >> 8) & 0x7f, filter->data)); in mbfl_filt_conv_wchar_2022jp()
452 CK((*filter->output_function)(s & 0x7f, filter->data)); in mbfl_filt_conv_wchar_2022jp()
454 if ((filter->status & 0xff00) != 0x400) { in mbfl_filt_conv_wchar_2022jp()
455 CK((*filter->output_function)(0x1b, filter->data)); /* ESC */ in mbfl_filt_conv_wchar_2022jp()
456 CK((*filter->output_function)(0x28, filter->data)); /* '(' */ in mbfl_filt_conv_wchar_2022jp()
457 CK((*filter->output_function)(0x4a, filter->data)); /* 'J' */ in mbfl_filt_conv_wchar_2022jp()
459 filter->status = 0x400; in mbfl_filt_conv_wchar_2022jp()
460 CK((*filter->output_function)(s & 0x7f, filter->data)); in mbfl_filt_conv_wchar_2022jp()
463 CK(mbfl_filt_conv_illegal_output(c, filter)); in mbfl_filt_conv_wchar_2022jp()
470 mbfl_filt_conv_any_jis_flush(mbfl_convert_filter *filter) in mbfl_filt_conv_any_jis_flush() argument
473 if ((filter->status & 0xff00) != 0) { in mbfl_filt_conv_any_jis_flush()
474 CK((*filter->output_function)(0x1b, filter->data)); /* ESC */ in mbfl_filt_conv_any_jis_flush()
475 CK((*filter->output_function)(0x28, filter->data)); /* '(' */ in mbfl_filt_conv_any_jis_flush()
476 CK((*filter->output_function)(0x42, filter->data)); /* 'B' */ in mbfl_filt_conv_any_jis_flush()
478 filter->status &= 0xff; in mbfl_filt_conv_any_jis_flush()
480 if (filter->flush_function != NULL) { in mbfl_filt_conv_any_jis_flush()
481 return (*filter->flush_function)(filter->data); in mbfl_filt_conv_any_jis_flush()
487 static int mbfl_filt_ident_jis(int c, mbfl_identify_filter *filter) in mbfl_filt_ident_jis() argument
490 switch (filter->status & 0xf) { in mbfl_filt_ident_jis()
498 filter->status += 2; in mbfl_filt_ident_jis()
500 filter->status = 0x20; in mbfl_filt_ident_jis()
502 filter->status = 0; in mbfl_filt_ident_jis()
503 …} else if ((filter->status == 0x80 || filter->status == 0x90) && c > 0x20 && c < 0x7f) { /* kanji… in mbfl_filt_ident_jis()
504 filter->status += 1; in mbfl_filt_ident_jis()
508 filter->flag = 1; /* bad */ in mbfl_filt_ident_jis()
515 filter->status &= ~0xf; in mbfl_filt_ident_jis()
519 filter->flag = 1; in mbfl_filt_ident_jis()
526 filter->status++; in mbfl_filt_ident_jis()
528 filter->status += 3; in mbfl_filt_ident_jis()
530 filter->flag = 1; /* bad */ in mbfl_filt_ident_jis()
531 filter->status &= ~0xf; in mbfl_filt_ident_jis()
539 filter->status = 0x80; in mbfl_filt_ident_jis()
541 filter->status++; in mbfl_filt_ident_jis()
543 filter->flag = 1; /* bad */ in mbfl_filt_ident_jis()
544 filter->status &= ~0xf; in mbfl_filt_ident_jis()
552 filter->status = 0x80; in mbfl_filt_ident_jis()
554 filter->status = 0x90; in mbfl_filt_ident_jis()
556 filter->flag = 1; /* bad */ in mbfl_filt_ident_jis()
557 filter->status &= ~0xf; in mbfl_filt_ident_jis()
565 filter->status = 0; in mbfl_filt_ident_jis()
567 filter->status = 0x10; in mbfl_filt_ident_jis()
569 filter->status = 0x20; in mbfl_filt_ident_jis()
571 filter->flag = 1; /* bad */ in mbfl_filt_ident_jis()
572 filter->status &= ~0xf; in mbfl_filt_ident_jis()
578 filter->status = 0; in mbfl_filt_ident_jis()
585 static int mbfl_filt_ident_2022jp(int c, mbfl_identify_filter *filter) in mbfl_filt_ident_2022jp() argument
588 switch (filter->status & 0xf) { in mbfl_filt_ident_2022jp()
594 filter->status += 2; in mbfl_filt_ident_2022jp()
595 } else if (filter->status == 0x80 && c > 0x20 && c < 0x7f) { /* kanji first char */ in mbfl_filt_ident_2022jp()
596 filter->status += 1; in mbfl_filt_ident_2022jp()
600 filter->flag = 1; /* bad */ in mbfl_filt_ident_2022jp()
607 filter->status++; in mbfl_filt_ident_2022jp()
609 filter->status &= ~0xf; in mbfl_filt_ident_2022jp()
611 filter->flag = 1; in mbfl_filt_ident_2022jp()
619 filter->status++; in mbfl_filt_ident_2022jp()
621 filter->status += 3; in mbfl_filt_ident_2022jp()
623 filter->flag = 1; /* bad */ in mbfl_filt_ident_2022jp()
624 filter->status &= ~0xf; in mbfl_filt_ident_2022jp()
632 filter->status = 0x80; in mbfl_filt_ident_2022jp()
634 filter->flag = 1; /* bad */ in mbfl_filt_ident_2022jp()
635 filter->status &= ~0xf; in mbfl_filt_ident_2022jp()
643 filter->status = 0; in mbfl_filt_ident_2022jp()
645 filter->status = 0x10; in mbfl_filt_ident_2022jp()
647 filter->flag = 1; /* bad */ in mbfl_filt_ident_2022jp()
648 filter->status &= ~0xf; in mbfl_filt_ident_2022jp()
654 filter->status = 0; in mbfl_filt_ident_2022jp()