Lines Matching refs:filter

37 int mbfl_filt_ident_utf8(int c, mbfl_identify_filter *filter);
98 int mbfl_filt_put_invalid_char(int c, mbfl_convert_filter *filter) in mbfl_filt_put_invalid_char() argument
103 filter->status = 0; in mbfl_filt_put_invalid_char()
104 filter->cache = 0; in mbfl_filt_put_invalid_char()
105 CK((*filter->output_function)(w, filter->data)); in mbfl_filt_put_invalid_char()
113 int mbfl_filt_conv_utf8_wchar(int c, mbfl_convert_filter *filter) in mbfl_filt_conv_utf8_wchar() argument
118 switch (filter->status & 0xff) { in mbfl_filt_conv_utf8_wchar()
121 CK((*filter->output_function)(c, filter->data)); in mbfl_filt_conv_utf8_wchar()
123 filter->status = 0x10; in mbfl_filt_conv_utf8_wchar()
124 filter->cache = c & 0x1f; in mbfl_filt_conv_utf8_wchar()
126 filter->status = 0x20; in mbfl_filt_conv_utf8_wchar()
127 filter->cache = c & 0xf; in mbfl_filt_conv_utf8_wchar()
129 filter->status = 0x30; in mbfl_filt_conv_utf8_wchar()
130 filter->cache = c & 0x7; in mbfl_filt_conv_utf8_wchar()
132 CK(mbfl_filt_put_invalid_char(c, filter)); in mbfl_filt_conv_utf8_wchar()
138 filter->status = 0; in mbfl_filt_conv_utf8_wchar()
140 s = (filter->cache<<6) | (c & 0x3f); in mbfl_filt_conv_utf8_wchar()
141 filter->cache = 0; in mbfl_filt_conv_utf8_wchar()
142 CK((*filter->output_function)(s, filter->data)); in mbfl_filt_conv_utf8_wchar()
144 CK(mbfl_filt_put_invalid_char(filter->cache, filter)); in mbfl_filt_conv_utf8_wchar()
149 s = (filter->cache<<6) | (c & 0x3f); in mbfl_filt_conv_utf8_wchar()
150 c1 = filter->cache & 0xf; in mbfl_filt_conv_utf8_wchar()
156 filter->cache = s; in mbfl_filt_conv_utf8_wchar()
157 filter->status++; in mbfl_filt_conv_utf8_wchar()
159 CK(mbfl_filt_put_invalid_char(filter->cache, filter)); in mbfl_filt_conv_utf8_wchar()
164 s = (filter->cache<<6) | (c & 0x3f); in mbfl_filt_conv_utf8_wchar()
165 c1 = filter->cache & 0x7; in mbfl_filt_conv_utf8_wchar()
171 filter->cache = s; in mbfl_filt_conv_utf8_wchar()
172 filter->status++; in mbfl_filt_conv_utf8_wchar()
174 CK(mbfl_filt_put_invalid_char(filter->cache, filter)); in mbfl_filt_conv_utf8_wchar()
180 filter->cache = (filter->cache<<6) | (c & 0x3f); in mbfl_filt_conv_utf8_wchar()
181 filter->status++; in mbfl_filt_conv_utf8_wchar()
183 CK(mbfl_filt_put_invalid_char(filter->cache, filter)); in mbfl_filt_conv_utf8_wchar()
188 filter->status = 0; in mbfl_filt_conv_utf8_wchar()
195 int mbfl_filt_conv_utf8_wchar_flush(mbfl_convert_filter *filter) in mbfl_filt_conv_utf8_wchar_flush() argument
199 status = filter->status; in mbfl_filt_conv_utf8_wchar_flush()
200 cache = filter->cache; in mbfl_filt_conv_utf8_wchar_flush()
202 filter->status = 0; in mbfl_filt_conv_utf8_wchar_flush()
203 filter->cache = 0; in mbfl_filt_conv_utf8_wchar_flush()
206 CK(mbfl_filt_put_invalid_char(cache, filter)); in mbfl_filt_conv_utf8_wchar_flush()
209 if (filter->flush_function != NULL) { in mbfl_filt_conv_utf8_wchar_flush()
210 (*filter->flush_function)(filter->data); in mbfl_filt_conv_utf8_wchar_flush()
218 int mbfl_filt_conv_wchar_utf8(int c, mbfl_convert_filter *filter) in mbfl_filt_conv_wchar_utf8() argument
222 CK((*filter->output_function)(c, filter->data)); in mbfl_filt_conv_wchar_utf8()
224 CK((*filter->output_function)(((c >> 6) & 0x1f) | 0xc0, filter->data)); in mbfl_filt_conv_wchar_utf8()
225 CK((*filter->output_function)((c & 0x3f) | 0x80, filter->data)); in mbfl_filt_conv_wchar_utf8()
227 CK((*filter->output_function)(((c >> 12) & 0x0f) | 0xe0, filter->data)); in mbfl_filt_conv_wchar_utf8()
228 CK((*filter->output_function)(((c >> 6) & 0x3f) | 0x80, filter->data)); in mbfl_filt_conv_wchar_utf8()
229 CK((*filter->output_function)((c & 0x3f) | 0x80, filter->data)); in mbfl_filt_conv_wchar_utf8()
231 CK((*filter->output_function)(((c >> 18) & 0x07) | 0xf0, filter->data)); in mbfl_filt_conv_wchar_utf8()
232 CK((*filter->output_function)(((c >> 12) & 0x3f) | 0x80, filter->data)); in mbfl_filt_conv_wchar_utf8()
233 CK((*filter->output_function)(((c >> 6) & 0x3f) | 0x80, filter->data)); in mbfl_filt_conv_wchar_utf8()
234 CK((*filter->output_function)((c & 0x3f) | 0x80, filter->data)); in mbfl_filt_conv_wchar_utf8()
237 CK(mbfl_filt_conv_illegal_output(c, filter)); in mbfl_filt_conv_wchar_utf8()
243 int mbfl_filt_ident_utf8(int c, mbfl_identify_filter *filter) in mbfl_filt_ident_utf8() argument
247 c1 = (filter->status >> 8) & 0xff; in mbfl_filt_ident_utf8()
248 filter->status &= 0xff; in mbfl_filt_ident_utf8()
252 filter->flag = 1; /* bad */ in mbfl_filt_ident_utf8()
253 } else if (filter->status) { in mbfl_filt_ident_utf8()
254 filter->flag = 1; /* bad */ in mbfl_filt_ident_utf8()
256 filter->status = 0; in mbfl_filt_ident_utf8()
258 switch (filter->status) { in mbfl_filt_ident_utf8()
263 filter->status++; in mbfl_filt_ident_utf8()
265 filter->flag = 1; /* bad */ in mbfl_filt_ident_utf8()
266 filter->status = 0; in mbfl_filt_ident_utf8()
273 filter->status++; in mbfl_filt_ident_utf8()
275 filter->flag = 1; /* bad */ in mbfl_filt_ident_utf8()
276 filter->status = 0; in mbfl_filt_ident_utf8()
280 filter->status++; in mbfl_filt_ident_utf8()
285 filter->status = 0; in mbfl_filt_ident_utf8()
288 filter->flag = 1; /* bad */ in mbfl_filt_ident_utf8()
289 filter->status = 0; in mbfl_filt_ident_utf8()
293 filter->flag = 1; /* bad */ in mbfl_filt_ident_utf8()
294 filter->status = 0; in mbfl_filt_ident_utf8()
296 if (filter->status) { in mbfl_filt_ident_utf8()
297 filter->flag = 1; /* bad */ in mbfl_filt_ident_utf8()
299 filter->status = 0; in mbfl_filt_ident_utf8()
301 filter->status = 0x10; in mbfl_filt_ident_utf8()
303 filter->status = 0x20; in mbfl_filt_ident_utf8()
304 filter->status |= (c & 0xf) << 8; in mbfl_filt_ident_utf8()
306 filter->status = 0x30; in mbfl_filt_ident_utf8()
307 filter->status |= (c & 0x7) << 8; in mbfl_filt_ident_utf8()
309 filter->flag = 1; /* bad */ in mbfl_filt_ident_utf8()