Lines Matching refs:filter

81 static int mbfl_filt_conv_wchar_utf7imap_flush(mbfl_convert_filter *filter);
82 static int mbfl_filt_conv_utf7imap_wchar_flush(mbfl_convert_filter *filter);
119 int mbfl_filt_conv_utf7imap_wchar(int c, mbfl_convert_filter *filter) in mbfl_filt_conv_utf7imap_wchar() argument
123 if (filter->status != 0) { /* Modified Base64 */ in mbfl_filt_conv_utf7imap_wchar()
138 if (filter->status == 1) { /* "&-" -> "&" */ in mbfl_filt_conv_utf7imap_wchar()
139 CK((*filter->output_function)('&', filter->data)); in mbfl_filt_conv_utf7imap_wchar()
140 } else if (filter->cache) { in mbfl_filt_conv_utf7imap_wchar()
143 CK((*filter->output_function)(MBFL_BAD_INPUT, filter->data)); in mbfl_filt_conv_utf7imap_wchar()
146 CK((*filter->output_function)(MBFL_BAD_INPUT, filter->data)); in mbfl_filt_conv_utf7imap_wchar()
148 filter->cache = filter->status = 0; in mbfl_filt_conv_utf7imap_wchar()
153 switch (filter->status) { in mbfl_filt_conv_utf7imap_wchar()
157 filter->status++; in mbfl_filt_conv_utf7imap_wchar()
159 CK((*filter->output_function)(c, filter->data)); in mbfl_filt_conv_utf7imap_wchar()
161 CK((*filter->output_function)(MBFL_BAD_INPUT, filter->data)); in mbfl_filt_conv_utf7imap_wchar()
168 filter->cache |= n << 10; in mbfl_filt_conv_utf7imap_wchar()
169 filter->status = 3; in mbfl_filt_conv_utf7imap_wchar()
172 filter->cache |= n << 4; in mbfl_filt_conv_utf7imap_wchar()
173 filter->status = 4; in mbfl_filt_conv_utf7imap_wchar()
176 s = ((n >> 2) & 0xf) | (filter->cache & 0xffff); in mbfl_filt_conv_utf7imap_wchar()
178 filter->status = 5; in mbfl_filt_conv_utf7imap_wchar()
182 filter->cache = s; in mbfl_filt_conv_utf7imap_wchar()
185 if (filter->cache & 0xfff0000) { in mbfl_filt_conv_utf7imap_wchar()
187 s |= (filter->cache & 0xfff0000) >> 6; in mbfl_filt_conv_utf7imap_wchar()
188 filter->cache = n; in mbfl_filt_conv_utf7imap_wchar()
189 CK((*filter->output_function)(s, filter->data)); in mbfl_filt_conv_utf7imap_wchar()
191 CK((*filter->output_function)(MBFL_BAD_INPUT, filter->data)); in mbfl_filt_conv_utf7imap_wchar()
194 filter->cache = n; in mbfl_filt_conv_utf7imap_wchar()
198 CK((*filter->output_function)(s, filter->data)); in mbfl_filt_conv_utf7imap_wchar()
200 CK((*filter->output_function)(MBFL_BAD_INPUT, filter->data)); in mbfl_filt_conv_utf7imap_wchar()
206 filter->cache |= n << 8; in mbfl_filt_conv_utf7imap_wchar()
207 filter->status = 6; in mbfl_filt_conv_utf7imap_wchar()
210 filter->cache |= n << 2; in mbfl_filt_conv_utf7imap_wchar()
211 filter->status = 7; in mbfl_filt_conv_utf7imap_wchar()
214 s = ((n >> 4) & 0x3) | (filter->cache & 0xffff); in mbfl_filt_conv_utf7imap_wchar()
216 filter->status = 8; in mbfl_filt_conv_utf7imap_wchar()
219 filter->cache = s; in mbfl_filt_conv_utf7imap_wchar()
221 if (filter->cache & 0xfff0000) { in mbfl_filt_conv_utf7imap_wchar()
223 s |= (filter->cache & 0xfff0000) >> 6; in mbfl_filt_conv_utf7imap_wchar()
224 filter->cache = n; in mbfl_filt_conv_utf7imap_wchar()
225 CK((*filter->output_function)(s, filter->data)); in mbfl_filt_conv_utf7imap_wchar()
227 CK((*filter->output_function)(MBFL_BAD_INPUT, filter->data)); in mbfl_filt_conv_utf7imap_wchar()
230 filter->cache = n; in mbfl_filt_conv_utf7imap_wchar()
234 CK((*filter->output_function)(s, filter->data)); in mbfl_filt_conv_utf7imap_wchar()
236 CK((*filter->output_function)(MBFL_BAD_INPUT, filter->data)); in mbfl_filt_conv_utf7imap_wchar()
242 filter->cache |= n << 6; in mbfl_filt_conv_utf7imap_wchar()
243 filter->status = 9; in mbfl_filt_conv_utf7imap_wchar()
246 s = n | (filter->cache & 0xffff); in mbfl_filt_conv_utf7imap_wchar()
247 filter->status = 2; in mbfl_filt_conv_utf7imap_wchar()
250 filter->cache = s; in mbfl_filt_conv_utf7imap_wchar()
252 if (filter->cache & 0xfff0000) { in mbfl_filt_conv_utf7imap_wchar()
254 s |= (filter->cache & 0xfff0000) >> 6; in mbfl_filt_conv_utf7imap_wchar()
255 filter->cache = 0; in mbfl_filt_conv_utf7imap_wchar()
256 CK((*filter->output_function)(s, filter->data)); in mbfl_filt_conv_utf7imap_wchar()
258 CK((*filter->output_function)(MBFL_BAD_INPUT, filter->data)); in mbfl_filt_conv_utf7imap_wchar()
261 filter->cache = 0; in mbfl_filt_conv_utf7imap_wchar()
265 CK((*filter->output_function)(s, filter->data)); in mbfl_filt_conv_utf7imap_wchar()
267 CK((*filter->output_function)(MBFL_BAD_INPUT, filter->data)); in mbfl_filt_conv_utf7imap_wchar()
273 filter->status = 0; in mbfl_filt_conv_utf7imap_wchar()
280 static int mbfl_filt_conv_utf7imap_wchar_flush(mbfl_convert_filter *filter) in mbfl_filt_conv_utf7imap_wchar_flush() argument
282 if (filter->status) { in mbfl_filt_conv_utf7imap_wchar_flush()
285 (*filter->output_function)(MBFL_BAD_INPUT, filter->data); in mbfl_filt_conv_utf7imap_wchar_flush()
288 if (filter->flush_function) { in mbfl_filt_conv_utf7imap_wchar_flush()
289 (*filter->flush_function)(filter->data); in mbfl_filt_conv_utf7imap_wchar_flush()
309 int mbfl_filt_conv_wchar_utf7imap(int c, mbfl_convert_filter *filter) in mbfl_filt_conv_wchar_utf7imap() argument
321 CK((*filter->filter_function)(s, filter)); in mbfl_filt_conv_wchar_utf7imap()
323 CK((*filter->filter_function)(s, filter)); in mbfl_filt_conv_wchar_utf7imap()
326 CK(mbfl_filt_conv_illegal_output(c, filter)); in mbfl_filt_conv_wchar_utf7imap()
330 switch (filter->status) { in mbfl_filt_conv_wchar_utf7imap()
333 CK((*filter->output_function)(c, filter->data)); in mbfl_filt_conv_wchar_utf7imap()
335 CK((*filter->output_function)(0x2d, filter->data)); /* '-' */ in mbfl_filt_conv_wchar_utf7imap()
338 CK((*filter->output_function)(0x26, filter->data)); /* '&' */ in mbfl_filt_conv_wchar_utf7imap()
339 filter->status = 1; in mbfl_filt_conv_wchar_utf7imap()
340 filter->cache = c; in mbfl_filt_conv_wchar_utf7imap()
346 s = filter->cache; in mbfl_filt_conv_wchar_utf7imap()
347 CK((*filter->output_function)(mbfl_utf7imap_base64_table[(s >> 10) & 0x3f], filter->data)); in mbfl_filt_conv_wchar_utf7imap()
348 CK((*filter->output_function)(mbfl_utf7imap_base64_table[(s >> 4) & 0x3f], filter->data)); in mbfl_filt_conv_wchar_utf7imap()
350 CK((*filter->output_function)(mbfl_utf7imap_base64_table[(s << 2) & 0x3c], filter->data)); in mbfl_filt_conv_wchar_utf7imap()
351 CK((*filter->output_function)('-', filter->data)); in mbfl_filt_conv_wchar_utf7imap()
352 CK((*filter->output_function)(c, filter->data)); in mbfl_filt_conv_wchar_utf7imap()
354 CK((*filter->output_function)('-', filter->data)); in mbfl_filt_conv_wchar_utf7imap()
356 filter->status = 0; in mbfl_filt_conv_wchar_utf7imap()
358 filter->status = 2; in mbfl_filt_conv_wchar_utf7imap()
359 filter->cache = ((s & 0xf) << 16) | c; in mbfl_filt_conv_wchar_utf7imap()
364 s = filter->cache; in mbfl_filt_conv_wchar_utf7imap()
365 CK((*filter->output_function)(mbfl_utf7imap_base64_table[(s >> 14) & 0x3f], filter->data)); in mbfl_filt_conv_wchar_utf7imap()
366 CK((*filter->output_function)(mbfl_utf7imap_base64_table[(s >> 8) & 0x3f], filter->data)); in mbfl_filt_conv_wchar_utf7imap()
367 CK((*filter->output_function)(mbfl_utf7imap_base64_table[(s >> 2) & 0x3f], filter->data)); in mbfl_filt_conv_wchar_utf7imap()
369 CK((*filter->output_function)(mbfl_utf7imap_base64_table[(s << 4) & 0x30], filter->data)); in mbfl_filt_conv_wchar_utf7imap()
370 CK((*filter->output_function)('-', filter->data)); in mbfl_filt_conv_wchar_utf7imap()
371 CK((*filter->output_function)(c, filter->data)); in mbfl_filt_conv_wchar_utf7imap()
373 CK((*filter->output_function)('-', filter->data)); in mbfl_filt_conv_wchar_utf7imap()
375 filter->status = 0; in mbfl_filt_conv_wchar_utf7imap()
377 filter->status = 3; in mbfl_filt_conv_wchar_utf7imap()
378 filter->cache = ((s & 0x3) << 16) | c; in mbfl_filt_conv_wchar_utf7imap()
383 s = filter->cache; in mbfl_filt_conv_wchar_utf7imap()
384 CK((*filter->output_function)(mbfl_utf7imap_base64_table[(s >> 12) & 0x3f], filter->data)); in mbfl_filt_conv_wchar_utf7imap()
385 CK((*filter->output_function)(mbfl_utf7imap_base64_table[(s >> 6) & 0x3f], filter->data)); in mbfl_filt_conv_wchar_utf7imap()
386 CK((*filter->output_function)(mbfl_utf7imap_base64_table[s & 0x3f], filter->data)); in mbfl_filt_conv_wchar_utf7imap()
388 CK((*filter->output_function)('-', filter->data)); in mbfl_filt_conv_wchar_utf7imap()
389 CK((*filter->output_function)(c, filter->data)); in mbfl_filt_conv_wchar_utf7imap()
391 CK((*filter->output_function)('-', filter->data)); in mbfl_filt_conv_wchar_utf7imap()
393 filter->status = 0; in mbfl_filt_conv_wchar_utf7imap()
395 filter->status = 1; in mbfl_filt_conv_wchar_utf7imap()
396 filter->cache = c; in mbfl_filt_conv_wchar_utf7imap()
401 filter->status = 0; in mbfl_filt_conv_wchar_utf7imap()
408 static int mbfl_filt_conv_wchar_utf7imap_flush(mbfl_convert_filter *filter) in mbfl_filt_conv_wchar_utf7imap_flush() argument
410 int status = filter->status, cache = filter->cache; in mbfl_filt_conv_wchar_utf7imap_flush()
411 filter->status = filter->cache = 0; in mbfl_filt_conv_wchar_utf7imap_flush()
416 CK((*filter->output_function)(mbfl_utf7imap_base64_table[(cache >> 10) & 0x3f], filter->data)); in mbfl_filt_conv_wchar_utf7imap_flush()
417 CK((*filter->output_function)(mbfl_utf7imap_base64_table[(cache >> 4) & 0x3f], filter->data)); in mbfl_filt_conv_wchar_utf7imap_flush()
418 CK((*filter->output_function)(mbfl_utf7imap_base64_table[(cache << 2) & 0x3c], filter->data)); in mbfl_filt_conv_wchar_utf7imap_flush()
419 CK((*filter->output_function)('-', filter->data)); in mbfl_filt_conv_wchar_utf7imap_flush()
423 CK((*filter->output_function)(mbfl_utf7imap_base64_table[(cache >> 14) & 0x3f], filter->data)); in mbfl_filt_conv_wchar_utf7imap_flush()
424 CK((*filter->output_function)(mbfl_utf7imap_base64_table[(cache >> 8) & 0x3f], filter->data)); in mbfl_filt_conv_wchar_utf7imap_flush()
425 CK((*filter->output_function)(mbfl_utf7imap_base64_table[(cache >> 2) & 0x3f], filter->data)); in mbfl_filt_conv_wchar_utf7imap_flush()
426 CK((*filter->output_function)(mbfl_utf7imap_base64_table[(cache << 4) & 0x30], filter->data)); in mbfl_filt_conv_wchar_utf7imap_flush()
427 CK((*filter->output_function)('-', filter->data)); in mbfl_filt_conv_wchar_utf7imap_flush()
431 CK((*filter->output_function)(mbfl_utf7imap_base64_table[(cache >> 12) & 0x3f], filter->data)); in mbfl_filt_conv_wchar_utf7imap_flush()
432 CK((*filter->output_function)(mbfl_utf7imap_base64_table[(cache >> 6) & 0x3f], filter->data)); in mbfl_filt_conv_wchar_utf7imap_flush()
433 CK((*filter->output_function)(mbfl_utf7imap_base64_table[cache & 0x3f], filter->data)); in mbfl_filt_conv_wchar_utf7imap_flush()
434 CK((*filter->output_function)('-', filter->data)); in mbfl_filt_conv_wchar_utf7imap_flush()