Lines Matching refs:filter

176 static int mbfl_filt_conv_utf16_wchar_flush(mbfl_convert_filter *filter);
291 int mbfl_filt_conv_utf16_wchar(int c, mbfl_convert_filter *filter) in mbfl_filt_conv_utf16_wchar() argument
295 if (filter->status == 0) { in mbfl_filt_conv_utf16_wchar()
296 filter->cache = c & 0xFF; in mbfl_filt_conv_utf16_wchar()
297 filter->status = 1; in mbfl_filt_conv_utf16_wchar()
299 int n = (filter->cache << 8) | (c & 0xFF); in mbfl_filt_conv_utf16_wchar()
300 filter->cache = filter->status = 0; in mbfl_filt_conv_utf16_wchar()
303 filter->filter_function = mbfl_filt_conv_utf16le_wchar; in mbfl_filt_conv_utf16_wchar()
305 filter->filter_function = mbfl_filt_conv_utf16be_wchar; in mbfl_filt_conv_utf16_wchar()
307 filter->cache = n & 0x3FF; /* Pick out 10 data bits */ in mbfl_filt_conv_utf16_wchar()
308 filter->status = 2; in mbfl_filt_conv_utf16_wchar()
312 CK((*filter->output_function)(MBFL_BAD_INPUT, filter->data)); in mbfl_filt_conv_utf16_wchar()
314 CK((*filter->output_function)(n, filter->data)); in mbfl_filt_conv_utf16_wchar()
322 int mbfl_filt_conv_utf16be_wchar(int c, mbfl_convert_filter *filter) in mbfl_filt_conv_utf16be_wchar() argument
326 switch (filter->status) { in mbfl_filt_conv_utf16be_wchar()
328 filter->cache = c & 0xFF; in mbfl_filt_conv_utf16be_wchar()
329 filter->status = 1; in mbfl_filt_conv_utf16be_wchar()
333 n = (filter->cache << 8) | (c & 0xFF); in mbfl_filt_conv_utf16be_wchar()
335 filter->cache = n & 0x3FF; /* Pick out 10 data bits */ in mbfl_filt_conv_utf16be_wchar()
336 filter->status = 2; in mbfl_filt_conv_utf16be_wchar()
339 filter->status = 0; in mbfl_filt_conv_utf16be_wchar()
340 CK((*filter->output_function)(MBFL_BAD_INPUT, filter->data)); in mbfl_filt_conv_utf16be_wchar()
342 filter->status = 0; in mbfl_filt_conv_utf16be_wchar()
343 CK((*filter->output_function)(n, filter->data)); in mbfl_filt_conv_utf16be_wchar()
348 filter->cache = (filter->cache << 8) | (c & 0xFF); in mbfl_filt_conv_utf16be_wchar()
349 filter->status = 3; in mbfl_filt_conv_utf16be_wchar()
353 n = ((filter->cache & 0xFF) << 8) | (c & 0xFF); in mbfl_filt_conv_utf16be_wchar()
356 filter->cache = n & 0x3FF; in mbfl_filt_conv_utf16be_wchar()
357 filter->status = 2; in mbfl_filt_conv_utf16be_wchar()
358 CK((*filter->output_function)(MBFL_BAD_INPUT, filter->data)); in mbfl_filt_conv_utf16be_wchar()
360 filter->status = 0; in mbfl_filt_conv_utf16be_wchar()
361 n = ((filter->cache & 0x3FF00) << 2) + (n & 0x3FF) + 0x10000; in mbfl_filt_conv_utf16be_wchar()
362 CK((*filter->output_function)(n, filter->data)); in mbfl_filt_conv_utf16be_wchar()
364 filter->status = 0; in mbfl_filt_conv_utf16be_wchar()
365 CK((*filter->output_function)(MBFL_BAD_INPUT, filter->data)); in mbfl_filt_conv_utf16be_wchar()
366 CK((*filter->output_function)(n, filter->data)); in mbfl_filt_conv_utf16be_wchar()
373 int mbfl_filt_conv_wchar_utf16be(int c, mbfl_convert_filter *filter) in mbfl_filt_conv_wchar_utf16be() argument
378 CK((*filter->output_function)((c >> 8) & 0xff, filter->data)); in mbfl_filt_conv_wchar_utf16be()
379 CK((*filter->output_function)(c & 0xff, filter->data)); in mbfl_filt_conv_wchar_utf16be()
382 CK((*filter->output_function)((n >> 8) & 0xff, filter->data)); in mbfl_filt_conv_wchar_utf16be()
383 CK((*filter->output_function)(n & 0xff, filter->data)); in mbfl_filt_conv_wchar_utf16be()
385 CK((*filter->output_function)((n >> 8) & 0xff, filter->data)); in mbfl_filt_conv_wchar_utf16be()
386 CK((*filter->output_function)(n & 0xff, filter->data)); in mbfl_filt_conv_wchar_utf16be()
388 CK(mbfl_filt_conv_illegal_output(c, filter)); in mbfl_filt_conv_wchar_utf16be()
394 int mbfl_filt_conv_utf16le_wchar(int c, mbfl_convert_filter *filter) in mbfl_filt_conv_utf16le_wchar() argument
398 switch (filter->status) { in mbfl_filt_conv_utf16le_wchar()
400 filter->cache = c & 0xff; in mbfl_filt_conv_utf16le_wchar()
401 filter->status = 1; in mbfl_filt_conv_utf16le_wchar()
407 filter->cache += ((c & 0x3) << 8); in mbfl_filt_conv_utf16le_wchar()
408 filter->status = 2; in mbfl_filt_conv_utf16le_wchar()
411 filter->status = 0; in mbfl_filt_conv_utf16le_wchar()
412 CK((*filter->output_function)(MBFL_BAD_INPUT, filter->data)); in mbfl_filt_conv_utf16le_wchar()
414 filter->status = 0; in mbfl_filt_conv_utf16le_wchar()
415 CK((*filter->output_function)(filter->cache + ((c & 0xff) << 8), filter->data)); in mbfl_filt_conv_utf16le_wchar()
420 filter->cache = (filter->cache << 10) + (c & 0xff); in mbfl_filt_conv_utf16le_wchar()
421 filter->status = 3; in mbfl_filt_conv_utf16le_wchar()
425 n = (filter->cache & 0xFF) | ((c & 0xFF) << 8); in mbfl_filt_conv_utf16le_wchar()
429 filter->cache = n & 0x3FF; in mbfl_filt_conv_utf16le_wchar()
430 filter->status = 2; in mbfl_filt_conv_utf16le_wchar()
431 CK((*filter->output_function)(MBFL_BAD_INPUT, filter->data)); in mbfl_filt_conv_utf16le_wchar()
433 n = filter->cache + ((c & 0x3) << 8) + 0x10000; in mbfl_filt_conv_utf16le_wchar()
434 filter->status = 0; in mbfl_filt_conv_utf16le_wchar()
435 CK((*filter->output_function)(n, filter->data)); in mbfl_filt_conv_utf16le_wchar()
439 filter->status = 0; in mbfl_filt_conv_utf16le_wchar()
440 CK((*filter->output_function)(MBFL_BAD_INPUT, filter->data)); in mbfl_filt_conv_utf16le_wchar()
441 CK((*filter->output_function)(n, filter->data)); in mbfl_filt_conv_utf16le_wchar()
449 int mbfl_filt_conv_wchar_utf16le(int c, mbfl_convert_filter *filter) in mbfl_filt_conv_wchar_utf16le() argument
454 CK((*filter->output_function)(c & 0xff, filter->data)); in mbfl_filt_conv_wchar_utf16le()
455 CK((*filter->output_function)((c >> 8) & 0xff, filter->data)); in mbfl_filt_conv_wchar_utf16le()
458 CK((*filter->output_function)(n & 0xff, filter->data)); in mbfl_filt_conv_wchar_utf16le()
459 CK((*filter->output_function)((n >> 8) & 0xff, filter->data)); in mbfl_filt_conv_wchar_utf16le()
461 CK((*filter->output_function)(n & 0xff, filter->data)); in mbfl_filt_conv_wchar_utf16le()
462 CK((*filter->output_function)((n >> 8) & 0xff, filter->data)); in mbfl_filt_conv_wchar_utf16le()
464 CK(mbfl_filt_conv_illegal_output(c, filter)); in mbfl_filt_conv_wchar_utf16le()
470 static int mbfl_filt_conv_utf16_wchar_flush(mbfl_convert_filter *filter) in mbfl_filt_conv_utf16_wchar_flush() argument
472 if (filter->status) { in mbfl_filt_conv_utf16_wchar_flush()
474 filter->status = 0; in mbfl_filt_conv_utf16_wchar_flush()
475 CK((*filter->output_function)(MBFL_BAD_INPUT, filter->data)); in mbfl_filt_conv_utf16_wchar_flush()
478 if (filter->flush_function) { in mbfl_filt_conv_utf16_wchar_flush()
479 (*filter->flush_function)(filter->data); in mbfl_filt_conv_utf16_wchar_flush()