Lines Matching refs:filter

47 static int mbfl_filt_conv_ucs4_wchar_flush(mbfl_convert_filter *filter);
160 int mbfl_filt_conv_ucs4_wchar(int c, mbfl_convert_filter *filter) in mbfl_filt_conv_ucs4_wchar() argument
164 endian = filter->status & 0xff00; in mbfl_filt_conv_ucs4_wchar()
165 switch (filter->status & 0xff) { in mbfl_filt_conv_ucs4_wchar()
172 filter->cache = n; in mbfl_filt_conv_ucs4_wchar()
173 filter->status++; in mbfl_filt_conv_ucs4_wchar()
181 filter->cache |= n; in mbfl_filt_conv_ucs4_wchar()
182 filter->status++; in mbfl_filt_conv_ucs4_wchar()
190 filter->cache |= n; in mbfl_filt_conv_ucs4_wchar()
191 filter->status++; in mbfl_filt_conv_ucs4_wchar()
199 n |= filter->cache; in mbfl_filt_conv_ucs4_wchar()
200 filter->status &= ~0xff; in mbfl_filt_conv_ucs4_wchar()
203 filter->status = 0; /* big-endian */ in mbfl_filt_conv_ucs4_wchar()
205 filter->status = 0x100; /* little-endian */ in mbfl_filt_conv_ucs4_wchar()
208 CK((*filter->output_function)(n, filter->data)); in mbfl_filt_conv_ucs4_wchar()
219 int mbfl_filt_conv_ucs4be_wchar(int c, mbfl_convert_filter *filter) in mbfl_filt_conv_ucs4be_wchar() argument
223 if (filter->status == 0) { in mbfl_filt_conv_ucs4be_wchar()
224 filter->status = 1; in mbfl_filt_conv_ucs4be_wchar()
226 filter->cache = n; in mbfl_filt_conv_ucs4be_wchar()
227 } else if (filter->status == 1) { in mbfl_filt_conv_ucs4be_wchar()
228 filter->status = 2; in mbfl_filt_conv_ucs4be_wchar()
230 filter->cache |= n; in mbfl_filt_conv_ucs4be_wchar()
231 } else if (filter->status == 2) { in mbfl_filt_conv_ucs4be_wchar()
232 filter->status = 3; in mbfl_filt_conv_ucs4be_wchar()
234 filter->cache |= n; in mbfl_filt_conv_ucs4be_wchar()
236 filter->status = 0; in mbfl_filt_conv_ucs4be_wchar()
237 n = (c & 0xff) | filter->cache; in mbfl_filt_conv_ucs4be_wchar()
238 CK((*filter->output_function)(n, filter->data)); in mbfl_filt_conv_ucs4be_wchar()
246 int mbfl_filt_conv_wchar_ucs4be(int c, mbfl_convert_filter *filter) in mbfl_filt_conv_wchar_ucs4be() argument
249 CK((*filter->output_function)((c >> 24) & 0xff, filter->data)); in mbfl_filt_conv_wchar_ucs4be()
250 CK((*filter->output_function)((c >> 16) & 0xff, filter->data)); in mbfl_filt_conv_wchar_ucs4be()
251 CK((*filter->output_function)((c >> 8) & 0xff, filter->data)); in mbfl_filt_conv_wchar_ucs4be()
252 CK((*filter->output_function)(c & 0xff, filter->data)); in mbfl_filt_conv_wchar_ucs4be()
254 CK(mbfl_filt_conv_illegal_output(c, filter)); in mbfl_filt_conv_wchar_ucs4be()
263 int mbfl_filt_conv_ucs4le_wchar(int c, mbfl_convert_filter *filter) in mbfl_filt_conv_ucs4le_wchar() argument
267 if (filter->status == 0) { in mbfl_filt_conv_ucs4le_wchar()
268 filter->status = 1; in mbfl_filt_conv_ucs4le_wchar()
270 filter->cache = n; in mbfl_filt_conv_ucs4le_wchar()
271 } else if (filter->status == 1) { in mbfl_filt_conv_ucs4le_wchar()
272 filter->status = 2; in mbfl_filt_conv_ucs4le_wchar()
274 filter->cache |= n; in mbfl_filt_conv_ucs4le_wchar()
275 } else if (filter->status == 2) { in mbfl_filt_conv_ucs4le_wchar()
276 filter->status = 3; in mbfl_filt_conv_ucs4le_wchar()
278 filter->cache |= n; in mbfl_filt_conv_ucs4le_wchar()
280 filter->status = 0; in mbfl_filt_conv_ucs4le_wchar()
281 n = ((c & 0xffu) << 24) | filter->cache; in mbfl_filt_conv_ucs4le_wchar()
282 CK((*filter->output_function)(n, filter->data)); in mbfl_filt_conv_ucs4le_wchar()
290 int mbfl_filt_conv_wchar_ucs4le(int c, mbfl_convert_filter *filter) in mbfl_filt_conv_wchar_ucs4le() argument
293 CK((*filter->output_function)(c & 0xff, filter->data)); in mbfl_filt_conv_wchar_ucs4le()
294 CK((*filter->output_function)((c >> 8) & 0xff, filter->data)); in mbfl_filt_conv_wchar_ucs4le()
295 CK((*filter->output_function)((c >> 16) & 0xff, filter->data)); in mbfl_filt_conv_wchar_ucs4le()
296 CK((*filter->output_function)((c >> 24) & 0xff, filter->data)); in mbfl_filt_conv_wchar_ucs4le()
298 CK(mbfl_filt_conv_illegal_output(c, filter)); in mbfl_filt_conv_wchar_ucs4le()
304 static int mbfl_filt_conv_ucs4_wchar_flush(mbfl_convert_filter *filter) in mbfl_filt_conv_ucs4_wchar_flush() argument
306 if (filter->status & 0xF) { in mbfl_filt_conv_ucs4_wchar_flush()
308 CK((*filter->output_function)(MBFL_BAD_INPUT, filter->data)); in mbfl_filt_conv_ucs4_wchar_flush()
310 filter->status = 0; in mbfl_filt_conv_ucs4_wchar_flush()
312 if (filter->flush_function) { in mbfl_filt_conv_ucs4_wchar_flush()
313 (*filter->flush_function)(filter->data); in mbfl_filt_conv_ucs4_wchar_flush()