Lines Matching refs:filter

38 static int mbfl_filt_ident_2022kr(int c, mbfl_identify_filter *filter);
80 mbfl_filt_conv_2022kr_wchar(int c, mbfl_convert_filter *filter) in mbfl_filt_conv_2022kr_wchar() argument
85 switch (filter->status & 0xf) { in mbfl_filt_conv_2022kr_wchar()
90 filter->status += 2; in mbfl_filt_conv_2022kr_wchar()
92 filter->status &= ~0xff; in mbfl_filt_conv_2022kr_wchar()
94 filter->status |= 0x10; in mbfl_filt_conv_2022kr_wchar()
95 } else if ((filter->status & 0x10) != 0 && c > 0x20 && c < 0x7f) { in mbfl_filt_conv_2022kr_wchar()
97 filter->cache = c; in mbfl_filt_conv_2022kr_wchar()
98 filter->status += 1; in mbfl_filt_conv_2022kr_wchar()
99 } else if ((filter->status & 0x10) == 0 && c >= 0 && c < 0x80) { in mbfl_filt_conv_2022kr_wchar()
101 CK((*filter->output_function)(c, filter->data)); in mbfl_filt_conv_2022kr_wchar()
105 CK((*filter->output_function)(w, filter->data)); in mbfl_filt_conv_2022kr_wchar()
110 filter->status &= ~0xf; in mbfl_filt_conv_2022kr_wchar()
111 c1 = filter->cache; in mbfl_filt_conv_2022kr_wchar()
140 CK((*filter->output_function)(w, filter->data)); in mbfl_filt_conv_2022kr_wchar()
142 filter->status++; in mbfl_filt_conv_2022kr_wchar()
144 CK((*filter->output_function)(c, filter->data)); in mbfl_filt_conv_2022kr_wchar()
149 CK((*filter->output_function)(w, filter->data)); in mbfl_filt_conv_2022kr_wchar()
155 filter->status++; in mbfl_filt_conv_2022kr_wchar()
157 filter->status &= ~0xf; in mbfl_filt_conv_2022kr_wchar()
158 CK((*filter->output_function)(0x1b, filter->data)); in mbfl_filt_conv_2022kr_wchar()
164 filter->status++; in mbfl_filt_conv_2022kr_wchar()
166 filter->status &= ~0xf; in mbfl_filt_conv_2022kr_wchar()
167 CK((*filter->output_function)(0x1b, filter->data)); in mbfl_filt_conv_2022kr_wchar()
168 CK((*filter->output_function)(0x24, filter->data)); in mbfl_filt_conv_2022kr_wchar()
174 filter->status &= ~0xf; in mbfl_filt_conv_2022kr_wchar()
175 filter->status |= 0x100; in mbfl_filt_conv_2022kr_wchar()
177 filter->status &= ~0xf; in mbfl_filt_conv_2022kr_wchar()
178 CK((*filter->output_function)(0x1b, filter->data)); in mbfl_filt_conv_2022kr_wchar()
179 CK((*filter->output_function)(0x24, filter->data)); in mbfl_filt_conv_2022kr_wchar()
180 CK((*filter->output_function)(0x29, filter->data)); in mbfl_filt_conv_2022kr_wchar()
185 filter->status = 0; in mbfl_filt_conv_2022kr_wchar()
196 mbfl_filt_conv_wchar_2022kr(int c, mbfl_convert_filter *filter) in mbfl_filt_conv_wchar_2022kr() argument
243 if ((filter->status & 0x10) != 0) { in mbfl_filt_conv_wchar_2022kr()
244 CK((*filter->output_function)(0x0f, filter->data)); /* SI */ in mbfl_filt_conv_wchar_2022kr()
245 filter->status &= ~0x10; in mbfl_filt_conv_wchar_2022kr()
247 CK((*filter->output_function)(s, filter->data)); in mbfl_filt_conv_wchar_2022kr()
249 if ( (filter->status & 0x100) == 0) { in mbfl_filt_conv_wchar_2022kr()
250 CK((*filter->output_function)(0x1b, filter->data)); /* ESC */ in mbfl_filt_conv_wchar_2022kr()
251 CK((*filter->output_function)(0x24, filter->data)); /* '$' */ in mbfl_filt_conv_wchar_2022kr()
252 CK((*filter->output_function)(0x29, filter->data)); /* ')' */ in mbfl_filt_conv_wchar_2022kr()
253 CK((*filter->output_function)(0x43, filter->data)); /* 'C' */ in mbfl_filt_conv_wchar_2022kr()
254 filter->status |= 0x100; in mbfl_filt_conv_wchar_2022kr()
256 if ((filter->status & 0x10) == 0) { in mbfl_filt_conv_wchar_2022kr()
257 CK((*filter->output_function)(0x0e, filter->data)); /* SO */ in mbfl_filt_conv_wchar_2022kr()
258 filter->status |= 0x10; in mbfl_filt_conv_wchar_2022kr()
260 CK((*filter->output_function)((s >> 8) & 0xff, filter->data)); in mbfl_filt_conv_wchar_2022kr()
261 CK((*filter->output_function)(s & 0xff, filter->data)); in mbfl_filt_conv_wchar_2022kr()
264 if (filter->illegal_mode != MBFL_OUTPUTFILTER_ILLEGAL_MODE_NONE) { in mbfl_filt_conv_wchar_2022kr()
265 CK(mbfl_filt_conv_illegal_output(c, filter)); in mbfl_filt_conv_wchar_2022kr()
273 mbfl_filt_conv_any_2022kr_flush(mbfl_convert_filter *filter) in mbfl_filt_conv_any_2022kr_flush() argument
276 if ((filter->status & 0xff00) != 0) { in mbfl_filt_conv_any_2022kr_flush()
277 CK((*filter->output_function)(0x0f, filter->data)); /* SI */ in mbfl_filt_conv_any_2022kr_flush()
280 filter->status &= 0xff; in mbfl_filt_conv_any_2022kr_flush()
282 if (filter->flush_function != NULL) { in mbfl_filt_conv_any_2022kr_flush()
283 return (*filter->flush_function)(filter->data); in mbfl_filt_conv_any_2022kr_flush()
289 static int mbfl_filt_ident_2022kr(int c, mbfl_identify_filter *filter) in mbfl_filt_ident_2022kr() argument
292 switch (filter->status & 0xf) { in mbfl_filt_ident_2022kr()
298 if (!(filter->status & 0x10)) { in mbfl_filt_ident_2022kr()
300 filter->status += 2; in mbfl_filt_ident_2022kr()
301 } else if (filter->status == 0x20 && c > 0x20 && c < 0x7f) { /* kanji first char */ in mbfl_filt_ident_2022kr()
302 filter->status += 1; in mbfl_filt_ident_2022kr()
306 filter->flag = 1; /* bad */ in mbfl_filt_ident_2022kr()
312 filter->status &= ~0xf; in mbfl_filt_ident_2022kr()
314 filter->flag = 1; in mbfl_filt_ident_2022kr()
321 filter->status++; in mbfl_filt_ident_2022kr()
323 filter->flag = 1; /* bad */ in mbfl_filt_ident_2022kr()
324 filter->status &= ~0xf; in mbfl_filt_ident_2022kr()
332 filter->status++; in mbfl_filt_ident_2022kr()
334 filter->flag = 1; /* bad */ in mbfl_filt_ident_2022kr()
335 filter->status &= ~0xf; in mbfl_filt_ident_2022kr()
343 filter->status = 0x10; in mbfl_filt_ident_2022kr()
345 filter->flag = 1; /* bad */ in mbfl_filt_ident_2022kr()
346 filter->status &= ~0xf; in mbfl_filt_ident_2022kr()
352 filter->status = 0; in mbfl_filt_ident_2022kr()