Lines Matching refs:filter

37 int mbfl_filt_ident_utf8(int c, mbfl_identify_filter *filter);
96 int mbfl_filt_put_invalid_char(int c, mbfl_convert_filter *filter) in mbfl_filt_put_invalid_char() argument
101 filter->status = 0; in mbfl_filt_put_invalid_char()
102 filter->cache = 0; in mbfl_filt_put_invalid_char()
103 CK((*filter->output_function)(w, filter->data)); in mbfl_filt_put_invalid_char()
110 int mbfl_filt_conv_utf8_wchar(int c, mbfl_convert_filter *filter) in mbfl_filt_conv_utf8_wchar() argument
115 switch (filter->status & 0xff) { in mbfl_filt_conv_utf8_wchar()
118 CK((*filter->output_function)(c, filter->data)); in mbfl_filt_conv_utf8_wchar()
120 filter->status = 0x10; in mbfl_filt_conv_utf8_wchar()
121 filter->cache = c & 0x1f; in mbfl_filt_conv_utf8_wchar()
123 filter->status = 0x20; in mbfl_filt_conv_utf8_wchar()
124 filter->cache = c & 0xf; in mbfl_filt_conv_utf8_wchar()
126 filter->status = 0x30; in mbfl_filt_conv_utf8_wchar()
127 filter->cache = c & 0x7; in mbfl_filt_conv_utf8_wchar()
129 mbfl_filt_put_invalid_char(c, filter); in mbfl_filt_conv_utf8_wchar()
135 filter->status = 0; in mbfl_filt_conv_utf8_wchar()
137 s = (filter->cache<<6) | (c & 0x3f); in mbfl_filt_conv_utf8_wchar()
138 filter->cache = 0; in mbfl_filt_conv_utf8_wchar()
139 CK((*filter->output_function)(s, filter->data)); in mbfl_filt_conv_utf8_wchar()
141 mbfl_filt_put_invalid_char(filter->cache, filter); in mbfl_filt_conv_utf8_wchar()
146 s = (filter->cache<<6) | (c & 0x3f); in mbfl_filt_conv_utf8_wchar()
147 c1 = filter->cache & 0xf; in mbfl_filt_conv_utf8_wchar()
153 filter->cache = s; in mbfl_filt_conv_utf8_wchar()
154 filter->status++; in mbfl_filt_conv_utf8_wchar()
156 mbfl_filt_put_invalid_char(filter->cache, filter); in mbfl_filt_conv_utf8_wchar()
161 s = (filter->cache<<6) | (c & 0x3f); in mbfl_filt_conv_utf8_wchar()
162 c1 = filter->cache & 0x7; in mbfl_filt_conv_utf8_wchar()
168 filter->cache = s; in mbfl_filt_conv_utf8_wchar()
169 filter->status++; in mbfl_filt_conv_utf8_wchar()
171 mbfl_filt_put_invalid_char(filter->cache, filter); in mbfl_filt_conv_utf8_wchar()
177 filter->cache = (filter->cache<<6) | (c & 0x3f); in mbfl_filt_conv_utf8_wchar()
178 filter->status++; in mbfl_filt_conv_utf8_wchar()
180 mbfl_filt_put_invalid_char(filter->cache, filter); in mbfl_filt_conv_utf8_wchar()
185 filter->status = 0; in mbfl_filt_conv_utf8_wchar()
192 int mbfl_filt_conv_utf8_wchar_flush(mbfl_convert_filter *filter) in mbfl_filt_conv_utf8_wchar_flush() argument
196 status = filter->status; in mbfl_filt_conv_utf8_wchar_flush()
197 cache = filter->cache; in mbfl_filt_conv_utf8_wchar_flush()
199 filter->status = 0; in mbfl_filt_conv_utf8_wchar_flush()
200 filter->cache = 0; in mbfl_filt_conv_utf8_wchar_flush()
203 mbfl_filt_put_invalid_char(cache, filter); in mbfl_filt_conv_utf8_wchar_flush()
206 if (filter->flush_function != NULL) { in mbfl_filt_conv_utf8_wchar_flush()
207 (*filter->flush_function)(filter->data); in mbfl_filt_conv_utf8_wchar_flush()
215 int mbfl_filt_conv_wchar_utf8(int c, mbfl_convert_filter *filter) in mbfl_filt_conv_wchar_utf8() argument
219 CK((*filter->output_function)(c, filter->data)); in mbfl_filt_conv_wchar_utf8()
221 CK((*filter->output_function)(((c >> 6) & 0x1f) | 0xc0, filter->data)); in mbfl_filt_conv_wchar_utf8()
222 CK((*filter->output_function)((c & 0x3f) | 0x80, filter->data)); in mbfl_filt_conv_wchar_utf8()
224 CK((*filter->output_function)(((c >> 12) & 0x0f) | 0xe0, filter->data)); in mbfl_filt_conv_wchar_utf8()
225 CK((*filter->output_function)(((c >> 6) & 0x3f) | 0x80, filter->data)); in mbfl_filt_conv_wchar_utf8()
226 CK((*filter->output_function)((c & 0x3f) | 0x80, filter->data)); in mbfl_filt_conv_wchar_utf8()
228 CK((*filter->output_function)(((c >> 18) & 0x07) | 0xf0, filter->data)); in mbfl_filt_conv_wchar_utf8()
229 CK((*filter->output_function)(((c >> 12) & 0x3f) | 0x80, filter->data)); in mbfl_filt_conv_wchar_utf8()
230 CK((*filter->output_function)(((c >> 6) & 0x3f) | 0x80, filter->data)); in mbfl_filt_conv_wchar_utf8()
231 CK((*filter->output_function)((c & 0x3f) | 0x80, filter->data)); in mbfl_filt_conv_wchar_utf8()
234 if (filter->illegal_mode != MBFL_OUTPUTFILTER_ILLEGAL_MODE_NONE) { in mbfl_filt_conv_wchar_utf8()
235 CK(mbfl_filt_conv_illegal_output(c, filter)); in mbfl_filt_conv_wchar_utf8()
242 int mbfl_filt_ident_utf8(int c, mbfl_identify_filter *filter) in mbfl_filt_ident_utf8() argument
246 c1 = (filter->status >> 8) & 0xff; in mbfl_filt_ident_utf8()
247 filter->status &= 0xff; in mbfl_filt_ident_utf8()
251 filter->flag = 1; /* bad */ in mbfl_filt_ident_utf8()
252 } else if (filter->status) { in mbfl_filt_ident_utf8()
253 filter->flag = 1; /* bad */ in mbfl_filt_ident_utf8()
255 filter->status = 0; in mbfl_filt_ident_utf8()
257 switch (filter->status) { in mbfl_filt_ident_utf8()
262 filter->status++; in mbfl_filt_ident_utf8()
264 filter->flag = 1; /* bad */ in mbfl_filt_ident_utf8()
265 filter->status = 0; in mbfl_filt_ident_utf8()
272 filter->status++; in mbfl_filt_ident_utf8()
274 filter->flag = 1; /* bad */ in mbfl_filt_ident_utf8()
275 filter->status = 0; in mbfl_filt_ident_utf8()
279 filter->status++; in mbfl_filt_ident_utf8()
284 filter->status = 0; in mbfl_filt_ident_utf8()
287 filter->flag = 1; /* bad */ in mbfl_filt_ident_utf8()
288 filter->status = 0; in mbfl_filt_ident_utf8()
292 filter->flag = 1; /* bad */ in mbfl_filt_ident_utf8()
293 filter->status = 0; in mbfl_filt_ident_utf8()
295 if (filter->status) { in mbfl_filt_ident_utf8()
296 filter->flag = 1; /* bad */ in mbfl_filt_ident_utf8()
298 filter->status = 0; in mbfl_filt_ident_utf8()
300 filter->status = 0x10; in mbfl_filt_ident_utf8()
302 filter->status = 0x20; in mbfl_filt_ident_utf8()
303 filter->status |= (c & 0xf) << 8; in mbfl_filt_ident_utf8()
305 filter->status = 0x30; in mbfl_filt_ident_utf8()
306 filter->status |= (c & 0x7) << 8; in mbfl_filt_ident_utf8()
308 filter->flag = 1; /* bad */ in mbfl_filt_ident_utf8()