Lines Matching refs:filter

33 static int mbfl_filt_conv_utf32_wchar_flush(mbfl_convert_filter *filter);
146 static int emit_char_if_valid(int n, mbfl_convert_filter *filter) in emit_char_if_valid() argument
149 CK((*filter->output_function)(n, filter->data)); in emit_char_if_valid()
151 CK((*filter->output_function)(MBFL_BAD_INPUT, filter->data)); in emit_char_if_valid()
156 int mbfl_filt_conv_utf32_wchar(int c, mbfl_convert_filter *filter) in mbfl_filt_conv_utf32_wchar() argument
158 if (filter->status < 3) { in mbfl_filt_conv_utf32_wchar()
159 filter->cache = (filter->cache << 8) | (c & 0xFF); in mbfl_filt_conv_utf32_wchar()
160 filter->status++; in mbfl_filt_conv_utf32_wchar()
162 int n = ((unsigned int)filter->cache << 8) | (c & 0xFF); in mbfl_filt_conv_utf32_wchar()
163 filter->cache = filter->status = 0; in mbfl_filt_conv_utf32_wchar()
167 filter->filter_function = mbfl_filt_conv_utf32le_wchar; in mbfl_filt_conv_utf32_wchar()
169 filter->filter_function = mbfl_filt_conv_utf32be_wchar; in mbfl_filt_conv_utf32_wchar()
171 CK(emit_char_if_valid(n, filter)); in mbfl_filt_conv_utf32_wchar()
179 int mbfl_filt_conv_utf32be_wchar(int c, mbfl_convert_filter *filter) in mbfl_filt_conv_utf32be_wchar() argument
181 if (filter->status < 3) { in mbfl_filt_conv_utf32be_wchar()
182 filter->cache = (filter->cache << 8) | (c & 0xFF); in mbfl_filt_conv_utf32be_wchar()
183 filter->status++; in mbfl_filt_conv_utf32be_wchar()
185 int n = ((unsigned int)filter->cache << 8) | (c & 0xFF); in mbfl_filt_conv_utf32be_wchar()
186 filter->cache = filter->status = 0; in mbfl_filt_conv_utf32be_wchar()
187 CK(emit_char_if_valid(n, filter)); in mbfl_filt_conv_utf32be_wchar()
192 int mbfl_filt_conv_wchar_utf32be(int c, mbfl_convert_filter *filter) in mbfl_filt_conv_wchar_utf32be() argument
195 CK((*filter->output_function)((c >> 24) & 0xff, filter->data)); in mbfl_filt_conv_wchar_utf32be()
196 CK((*filter->output_function)((c >> 16) & 0xff, filter->data)); in mbfl_filt_conv_wchar_utf32be()
197 CK((*filter->output_function)((c >> 8) & 0xff, filter->data)); in mbfl_filt_conv_wchar_utf32be()
198 CK((*filter->output_function)(c & 0xff, filter->data)); in mbfl_filt_conv_wchar_utf32be()
200 CK(mbfl_filt_conv_illegal_output(c, filter)); in mbfl_filt_conv_wchar_utf32be()
206 int mbfl_filt_conv_utf32le_wchar(int c, mbfl_convert_filter *filter) in mbfl_filt_conv_utf32le_wchar() argument
208 if (filter->status < 3) { in mbfl_filt_conv_utf32le_wchar()
209 filter->cache |= ((c & 0xFFU) << (8 * filter->status)); in mbfl_filt_conv_utf32le_wchar()
210 filter->status++; in mbfl_filt_conv_utf32le_wchar()
212 int n = ((c & 0xFFU) << 24) | filter->cache; in mbfl_filt_conv_utf32le_wchar()
213 filter->cache = filter->status = 0; in mbfl_filt_conv_utf32le_wchar()
214 CK(emit_char_if_valid(n, filter)); in mbfl_filt_conv_utf32le_wchar()
219 int mbfl_filt_conv_wchar_utf32le(int c, mbfl_convert_filter *filter) in mbfl_filt_conv_wchar_utf32le() argument
222 CK((*filter->output_function)(c & 0xff, filter->data)); in mbfl_filt_conv_wchar_utf32le()
223 CK((*filter->output_function)((c >> 8) & 0xff, filter->data)); in mbfl_filt_conv_wchar_utf32le()
224 CK((*filter->output_function)((c >> 16) & 0xff, filter->data)); in mbfl_filt_conv_wchar_utf32le()
225 CK((*filter->output_function)((c >> 24) & 0xff, filter->data)); in mbfl_filt_conv_wchar_utf32le()
227 CK(mbfl_filt_conv_illegal_output(c, filter)); in mbfl_filt_conv_wchar_utf32le()
233 static int mbfl_filt_conv_utf32_wchar_flush(mbfl_convert_filter *filter) in mbfl_filt_conv_utf32_wchar_flush() argument
235 if (filter->status) { in mbfl_filt_conv_utf32_wchar_flush()
237 CK((*filter->output_function)(MBFL_BAD_INPUT, filter->data)); in mbfl_filt_conv_utf32_wchar_flush()
239 filter->cache = filter->status = 0; in mbfl_filt_conv_utf32_wchar_flush()
241 if (filter->flush_function) { in mbfl_filt_conv_utf32_wchar_flush()
242 (*filter->flush_function)(filter->data); in mbfl_filt_conv_utf32_wchar_flush()