Lines Matching refs:filter

40 static int mbfl_filt_ident_gb18030(int c, mbfl_identify_filter *filter);
125 mbfl_filt_conv_gb18030_wchar(int c, mbfl_convert_filter *filter) in mbfl_filt_conv_gb18030_wchar() argument
130 switch (filter->status) { in mbfl_filt_conv_gb18030_wchar()
133 CK((*filter->output_function)(c, filter->data)); in mbfl_filt_conv_gb18030_wchar()
135 CK((*filter->output_function)(0x20ac, filter->data)); in mbfl_filt_conv_gb18030_wchar()
137 CK((*filter->output_function)(0x00ff, filter->data)); in mbfl_filt_conv_gb18030_wchar()
139 filter->status = 1; in mbfl_filt_conv_gb18030_wchar()
140 filter->cache = c; in mbfl_filt_conv_gb18030_wchar()
144 CK((*filter->output_function)(w, filter->data)); in mbfl_filt_conv_gb18030_wchar()
149 c1 = filter->cache; in mbfl_filt_conv_gb18030_wchar()
150 filter->status = 0; in mbfl_filt_conv_gb18030_wchar()
153 filter->status = 2; in mbfl_filt_conv_gb18030_wchar()
154 filter->cache = (c1 << 8) | c; in mbfl_filt_conv_gb18030_wchar()
158 filter->status = 2; in mbfl_filt_conv_gb18030_wchar()
159 filter->cache = (c1 << 8) | c; in mbfl_filt_conv_gb18030_wchar()
164 CK((*filter->output_function)(w, filter->data)); in mbfl_filt_conv_gb18030_wchar()
168 CK((*filter->output_function)(w, filter->data)); in mbfl_filt_conv_gb18030_wchar()
182 CK((*filter->output_function)(w, filter->data)); in mbfl_filt_conv_gb18030_wchar()
205 CK((*filter->output_function)(w, filter->data)); in mbfl_filt_conv_gb18030_wchar()
207 CK((*filter->output_function)(c, filter->data)); in mbfl_filt_conv_gb18030_wchar()
212 CK((*filter->output_function)(w, filter->data)); in mbfl_filt_conv_gb18030_wchar()
217 c1 = (filter->cache >> 8) & 0xff; in mbfl_filt_conv_gb18030_wchar()
218 c2 = filter->cache & 0xff; in mbfl_filt_conv_gb18030_wchar()
219 filter->status = 0; in mbfl_filt_conv_gb18030_wchar()
220 filter->cache = 0; in mbfl_filt_conv_gb18030_wchar()
223 filter->cache = (c1 << 16) | (c2 << 8) | c; in mbfl_filt_conv_gb18030_wchar()
224 filter->status = 3; in mbfl_filt_conv_gb18030_wchar()
229 CK((*filter->output_function)(w, filter->data)); in mbfl_filt_conv_gb18030_wchar()
234 c1 = (filter->cache >> 16) & 0xff; in mbfl_filt_conv_gb18030_wchar()
235 c2 = (filter->cache >> 8) & 0xff; in mbfl_filt_conv_gb18030_wchar()
236 c3 = filter->cache & 0xff; in mbfl_filt_conv_gb18030_wchar()
237 filter->status = 0; in mbfl_filt_conv_gb18030_wchar()
238 filter->cache = 0; in mbfl_filt_conv_gb18030_wchar()
252 CK((*filter->output_function)(w, filter->data)); in mbfl_filt_conv_gb18030_wchar()
260 CK((*filter->output_function)(w, filter->data)); in mbfl_filt_conv_gb18030_wchar()
264 CK((*filter->output_function)(w, filter->data)); in mbfl_filt_conv_gb18030_wchar()
269 CK((*filter->output_function)(w, filter->data)); in mbfl_filt_conv_gb18030_wchar()
274 filter->status = 0; in mbfl_filt_conv_gb18030_wchar()
285 mbfl_filt_conv_wchar_gb18030(int c, mbfl_convert_filter *filter) in mbfl_filt_conv_wchar_gb18030() argument
402 CK((*filter->output_function)(s, filter->data)); in mbfl_filt_conv_wchar_gb18030()
404 CK((*filter->output_function)(s1 & 0xff, filter->data)); in mbfl_filt_conv_wchar_gb18030()
405 CK((*filter->output_function)((s >> 16) & 0xff, filter->data)); in mbfl_filt_conv_wchar_gb18030()
406 CK((*filter->output_function)((s >> 8) & 0xff, filter->data)); in mbfl_filt_conv_wchar_gb18030()
407 CK((*filter->output_function)(s & 0xff, filter->data)); in mbfl_filt_conv_wchar_gb18030()
409 CK((*filter->output_function)((s >> 8) & 0xff, filter->data)); in mbfl_filt_conv_wchar_gb18030()
410 CK((*filter->output_function)(s & 0xff, filter->data)); in mbfl_filt_conv_wchar_gb18030()
413 if (filter->illegal_mode != MBFL_OUTPUTFILTER_ILLEGAL_MODE_NONE) { in mbfl_filt_conv_wchar_gb18030()
414 CK(mbfl_filt_conv_illegal_output(c, filter)); in mbfl_filt_conv_wchar_gb18030()
421 static int mbfl_filt_ident_gb18030(int c, mbfl_identify_filter *filter) in mbfl_filt_ident_gb18030() argument
425 c1 = (filter->status >> 8) & 0xff; in mbfl_filt_ident_gb18030()
426 filter->status &= 0xff; in mbfl_filt_ident_gb18030()
428 if (filter->status == 0) { in mbfl_filt_ident_gb18030()
430 filter->status = 0; in mbfl_filt_ident_gb18030()
432 filter->status = 1; in mbfl_filt_ident_gb18030()
433 filter->status |= (c << 8); in mbfl_filt_ident_gb18030()
435 } else if (filter->status == 1) { /* dbcs/qbcs 2nd byte */ in mbfl_filt_ident_gb18030()
437 filter->status = 2; in mbfl_filt_ident_gb18030()
439 filter->status = 0; /* UDA part 1,2 */ in mbfl_filt_ident_gb18030()
441 filter->status = 0; /* UDA part 3 */ in mbfl_filt_ident_gb18030()
447 filter->status = 0; /* DBCS */ in mbfl_filt_ident_gb18030()
449 filter->flag = 1; /* bad */ in mbfl_filt_ident_gb18030()
450 filter->status = 0; in mbfl_filt_ident_gb18030()
452 } else if (filter->status == 2) { /* qbcs 3rd byte */ in mbfl_filt_ident_gb18030()
454 filter->status = 3; in mbfl_filt_ident_gb18030()
456 filter->flag = 1; /* bad */ in mbfl_filt_ident_gb18030()
457 filter->status = 0; in mbfl_filt_ident_gb18030()
459 } else if (filter->status == 3) { /* qbcs 4th byte */ in mbfl_filt_ident_gb18030()
461 filter->status = 0; in mbfl_filt_ident_gb18030()
463 filter->flag = 1; /* bad */ in mbfl_filt_ident_gb18030()
464 filter->status = 0; in mbfl_filt_ident_gb18030()
467 filter->flag = 1; in mbfl_filt_ident_gb18030()