Lines Matching refs:filter

33 static int mbfl_filt_conv_utf16_wchar_flush(mbfl_convert_filter *filter);
146 int mbfl_filt_conv_utf16_wchar(int c, mbfl_convert_filter *filter) in mbfl_filt_conv_utf16_wchar() argument
150 if (filter->status == 0) { in mbfl_filt_conv_utf16_wchar()
151 filter->cache = c & 0xFF; in mbfl_filt_conv_utf16_wchar()
152 filter->status = 1; in mbfl_filt_conv_utf16_wchar()
154 int n = (filter->cache << 8) | (c & 0xFF); in mbfl_filt_conv_utf16_wchar()
155 filter->cache = filter->status = 0; in mbfl_filt_conv_utf16_wchar()
158 filter->filter_function = mbfl_filt_conv_utf16le_wchar; in mbfl_filt_conv_utf16_wchar()
160 filter->filter_function = mbfl_filt_conv_utf16be_wchar; in mbfl_filt_conv_utf16_wchar()
162 filter->cache = n & 0x3FF; /* Pick out 10 data bits */ in mbfl_filt_conv_utf16_wchar()
163 filter->status = 2; in mbfl_filt_conv_utf16_wchar()
167 CK((*filter->output_function)(MBFL_BAD_INPUT, filter->data)); in mbfl_filt_conv_utf16_wchar()
169 CK((*filter->output_function)(n, filter->data)); in mbfl_filt_conv_utf16_wchar()
177 int mbfl_filt_conv_utf16be_wchar(int c, mbfl_convert_filter *filter) in mbfl_filt_conv_utf16be_wchar() argument
181 switch (filter->status) { in mbfl_filt_conv_utf16be_wchar()
183 filter->cache = c & 0xFF; in mbfl_filt_conv_utf16be_wchar()
184 filter->status = 1; in mbfl_filt_conv_utf16be_wchar()
188 n = (filter->cache << 8) | (c & 0xFF); in mbfl_filt_conv_utf16be_wchar()
190 filter->cache = n & 0x3FF; /* Pick out 10 data bits */ in mbfl_filt_conv_utf16be_wchar()
191 filter->status = 2; in mbfl_filt_conv_utf16be_wchar()
194 filter->status = 0; in mbfl_filt_conv_utf16be_wchar()
195 CK((*filter->output_function)(MBFL_BAD_INPUT, filter->data)); in mbfl_filt_conv_utf16be_wchar()
197 filter->status = 0; in mbfl_filt_conv_utf16be_wchar()
198 CK((*filter->output_function)(n, filter->data)); in mbfl_filt_conv_utf16be_wchar()
203 filter->cache = (filter->cache << 8) | (c & 0xFF); in mbfl_filt_conv_utf16be_wchar()
204 filter->status = 3; in mbfl_filt_conv_utf16be_wchar()
208 n = ((filter->cache & 0xFF) << 8) | (c & 0xFF); in mbfl_filt_conv_utf16be_wchar()
211 filter->cache = n & 0x3FF; in mbfl_filt_conv_utf16be_wchar()
212 filter->status = 2; in mbfl_filt_conv_utf16be_wchar()
213 CK((*filter->output_function)(MBFL_BAD_INPUT, filter->data)); in mbfl_filt_conv_utf16be_wchar()
215 filter->status = 0; in mbfl_filt_conv_utf16be_wchar()
216 n = ((filter->cache & 0x3FF00) << 2) + (n & 0x3FF) + 0x10000; in mbfl_filt_conv_utf16be_wchar()
217 CK((*filter->output_function)(n, filter->data)); in mbfl_filt_conv_utf16be_wchar()
219 filter->status = 0; in mbfl_filt_conv_utf16be_wchar()
220 CK((*filter->output_function)(MBFL_BAD_INPUT, filter->data)); in mbfl_filt_conv_utf16be_wchar()
221 CK((*filter->output_function)(n, filter->data)); in mbfl_filt_conv_utf16be_wchar()
228 int mbfl_filt_conv_wchar_utf16be(int c, mbfl_convert_filter *filter) in mbfl_filt_conv_wchar_utf16be() argument
233 CK((*filter->output_function)((c >> 8) & 0xff, filter->data)); in mbfl_filt_conv_wchar_utf16be()
234 CK((*filter->output_function)(c & 0xff, filter->data)); in mbfl_filt_conv_wchar_utf16be()
237 CK((*filter->output_function)((n >> 8) & 0xff, filter->data)); in mbfl_filt_conv_wchar_utf16be()
238 CK((*filter->output_function)(n & 0xff, filter->data)); in mbfl_filt_conv_wchar_utf16be()
240 CK((*filter->output_function)((n >> 8) & 0xff, filter->data)); in mbfl_filt_conv_wchar_utf16be()
241 CK((*filter->output_function)(n & 0xff, filter->data)); in mbfl_filt_conv_wchar_utf16be()
243 CK(mbfl_filt_conv_illegal_output(c, filter)); in mbfl_filt_conv_wchar_utf16be()
249 int mbfl_filt_conv_utf16le_wchar(int c, mbfl_convert_filter *filter) in mbfl_filt_conv_utf16le_wchar() argument
253 switch (filter->status) { in mbfl_filt_conv_utf16le_wchar()
255 filter->cache = c & 0xff; in mbfl_filt_conv_utf16le_wchar()
256 filter->status = 1; in mbfl_filt_conv_utf16le_wchar()
262 filter->cache += ((c & 0x3) << 8); in mbfl_filt_conv_utf16le_wchar()
263 filter->status = 2; in mbfl_filt_conv_utf16le_wchar()
266 filter->status = 0; in mbfl_filt_conv_utf16le_wchar()
267 CK((*filter->output_function)(MBFL_BAD_INPUT, filter->data)); in mbfl_filt_conv_utf16le_wchar()
269 filter->status = 0; in mbfl_filt_conv_utf16le_wchar()
270 CK((*filter->output_function)(filter->cache + ((c & 0xff) << 8), filter->data)); in mbfl_filt_conv_utf16le_wchar()
275 filter->cache = (filter->cache << 10) + (c & 0xff); in mbfl_filt_conv_utf16le_wchar()
276 filter->status = 3; in mbfl_filt_conv_utf16le_wchar()
280 n = (filter->cache & 0xFF) | ((c & 0xFF) << 8); in mbfl_filt_conv_utf16le_wchar()
284 filter->cache = n & 0x3FF; in mbfl_filt_conv_utf16le_wchar()
285 filter->status = 2; in mbfl_filt_conv_utf16le_wchar()
286 CK((*filter->output_function)(MBFL_BAD_INPUT, filter->data)); in mbfl_filt_conv_utf16le_wchar()
288 n = filter->cache + ((c & 0x3) << 8) + 0x10000; in mbfl_filt_conv_utf16le_wchar()
289 filter->status = 0; in mbfl_filt_conv_utf16le_wchar()
290 CK((*filter->output_function)(n, filter->data)); in mbfl_filt_conv_utf16le_wchar()
294 filter->status = 0; in mbfl_filt_conv_utf16le_wchar()
295 CK((*filter->output_function)(MBFL_BAD_INPUT, filter->data)); in mbfl_filt_conv_utf16le_wchar()
296 CK((*filter->output_function)(n, filter->data)); in mbfl_filt_conv_utf16le_wchar()
304 int mbfl_filt_conv_wchar_utf16le(int c, mbfl_convert_filter *filter) in mbfl_filt_conv_wchar_utf16le() argument
309 CK((*filter->output_function)(c & 0xff, filter->data)); in mbfl_filt_conv_wchar_utf16le()
310 CK((*filter->output_function)((c >> 8) & 0xff, filter->data)); in mbfl_filt_conv_wchar_utf16le()
313 CK((*filter->output_function)(n & 0xff, filter->data)); in mbfl_filt_conv_wchar_utf16le()
314 CK((*filter->output_function)((n >> 8) & 0xff, filter->data)); in mbfl_filt_conv_wchar_utf16le()
316 CK((*filter->output_function)(n & 0xff, filter->data)); in mbfl_filt_conv_wchar_utf16le()
317 CK((*filter->output_function)((n >> 8) & 0xff, filter->data)); in mbfl_filt_conv_wchar_utf16le()
319 CK(mbfl_filt_conv_illegal_output(c, filter)); in mbfl_filt_conv_wchar_utf16le()
325 static int mbfl_filt_conv_utf16_wchar_flush(mbfl_convert_filter *filter) in mbfl_filt_conv_utf16_wchar_flush() argument
327 if (filter->status) { in mbfl_filt_conv_utf16_wchar_flush()
329 filter->status = 0; in mbfl_filt_conv_utf16_wchar_flush()
330 CK((*filter->output_function)(MBFL_BAD_INPUT, filter->data)); in mbfl_filt_conv_utf16_wchar_flush()
333 if (filter->flush_function) { in mbfl_filt_conv_utf16_wchar_flush()
334 (*filter->flush_function)(filter->data); in mbfl_filt_conv_utf16_wchar_flush()