Lines Matching refs:filter

42 static int mbfl_filt_conv_2022kr_wchar_flush(mbfl_convert_filter *filter);
43 static int mbfl_filt_conv_any_2022kr_flush(mbfl_convert_filter *filter);
83 int mbfl_filt_conv_2022kr_wchar(int c, mbfl_convert_filter *filter) in mbfl_filt_conv_2022kr_wchar() argument
87 switch (filter->status & 0xf) { in mbfl_filt_conv_2022kr_wchar()
92 filter->status += 2; in mbfl_filt_conv_2022kr_wchar()
94 filter->status = 0; in mbfl_filt_conv_2022kr_wchar()
96 filter->status = 0x10; in mbfl_filt_conv_2022kr_wchar()
97 } else if ((filter->status & 0x10) && c > 0x20 && c < 0x7f) { in mbfl_filt_conv_2022kr_wchar()
99 filter->cache = c; in mbfl_filt_conv_2022kr_wchar()
100 filter->status = 0x11; in mbfl_filt_conv_2022kr_wchar()
101 } else if ((filter->status & 0x10) == 0 && c >= 0 && c < 0x80) { in mbfl_filt_conv_2022kr_wchar()
103 CK((*filter->output_function)(c, filter->data)); in mbfl_filt_conv_2022kr_wchar()
105 CK((*filter->output_function)(MBFL_BAD_INPUT, filter->data)); in mbfl_filt_conv_2022kr_wchar()
110 filter->status = 0x10; in mbfl_filt_conv_2022kr_wchar()
111 int c1 = filter->cache; in mbfl_filt_conv_2022kr_wchar()
139 CK((*filter->output_function)(w, filter->data)); in mbfl_filt_conv_2022kr_wchar()
141 CK((*filter->output_function)(MBFL_BAD_INPUT, filter->data)); in mbfl_filt_conv_2022kr_wchar()
147 filter->status++; in mbfl_filt_conv_2022kr_wchar()
149 filter->status &= ~0xF; in mbfl_filt_conv_2022kr_wchar()
150 CK((*filter->output_function)(MBFL_BAD_INPUT, filter->data)); in mbfl_filt_conv_2022kr_wchar()
156 filter->status++; in mbfl_filt_conv_2022kr_wchar()
158 filter->status &= ~0xF; in mbfl_filt_conv_2022kr_wchar()
159 CK((*filter->output_function)(MBFL_BAD_INPUT, filter->data)); in mbfl_filt_conv_2022kr_wchar()
164 filter->status = 0; in mbfl_filt_conv_2022kr_wchar()
166 CK((*filter->output_function)(MBFL_BAD_INPUT, filter->data)); in mbfl_filt_conv_2022kr_wchar()
176 static int mbfl_filt_conv_2022kr_wchar_flush(mbfl_convert_filter *filter) in mbfl_filt_conv_2022kr_wchar_flush() argument
178 if (filter->status & 0xF) { in mbfl_filt_conv_2022kr_wchar_flush()
180 CK((*filter->output_function)(MBFL_BAD_INPUT, filter->data)); in mbfl_filt_conv_2022kr_wchar_flush()
182 filter->status = 0; in mbfl_filt_conv_2022kr_wchar_flush()
184 if (filter->flush_function) { in mbfl_filt_conv_2022kr_wchar_flush()
185 (*filter->flush_function)(filter->data); in mbfl_filt_conv_2022kr_wchar_flush()
191 int mbfl_filt_conv_wchar_2022kr(int c, mbfl_convert_filter *filter) in mbfl_filt_conv_wchar_2022kr() argument
195 if ((filter->status & 0x100) == 0) { in mbfl_filt_conv_wchar_2022kr()
196 CK((*filter->output_function)(0x1b, filter->data)); /* ESC */ in mbfl_filt_conv_wchar_2022kr()
197 CK((*filter->output_function)('$', filter->data)); in mbfl_filt_conv_wchar_2022kr()
198 CK((*filter->output_function)(')', filter->data)); in mbfl_filt_conv_wchar_2022kr()
199 CK((*filter->output_function)('C', filter->data)); in mbfl_filt_conv_wchar_2022kr()
200 filter->status |= 0x100; in mbfl_filt_conv_wchar_2022kr()
240 if (filter->status & 0x10) { in mbfl_filt_conv_wchar_2022kr()
241 CK((*filter->output_function)(0x0f, filter->data)); /* shift in */ in mbfl_filt_conv_wchar_2022kr()
242 filter->status &= ~0x10; in mbfl_filt_conv_wchar_2022kr()
244 CK((*filter->output_function)(s, filter->data)); in mbfl_filt_conv_wchar_2022kr()
246 if ((filter->status & 0x10) == 0) { in mbfl_filt_conv_wchar_2022kr()
247 CK((*filter->output_function)(0x0e, filter->data)); /* shift out */ in mbfl_filt_conv_wchar_2022kr()
248 filter->status |= 0x10; in mbfl_filt_conv_wchar_2022kr()
250 CK((*filter->output_function)((s >> 8) & 0xff, filter->data)); in mbfl_filt_conv_wchar_2022kr()
251 CK((*filter->output_function)(s & 0xff, filter->data)); in mbfl_filt_conv_wchar_2022kr()
254 CK(mbfl_filt_conv_illegal_output(c, filter)); in mbfl_filt_conv_wchar_2022kr()
260 static int mbfl_filt_conv_any_2022kr_flush(mbfl_convert_filter *filter) in mbfl_filt_conv_any_2022kr_flush() argument
262 if (filter->status & 0xF) { in mbfl_filt_conv_any_2022kr_flush()
264 (*filter->output_function)(MBFL_BAD_INPUT, filter->data); in mbfl_filt_conv_any_2022kr_flush()
267 if (filter->status & 0x10) { in mbfl_filt_conv_any_2022kr_flush()
268 CK((*filter->output_function)(0x0f, filter->data)); /* shift in */ in mbfl_filt_conv_any_2022kr_flush()
271 filter->status = filter->cache = 0; in mbfl_filt_conv_any_2022kr_flush()
273 if (filter->flush_function) { in mbfl_filt_conv_any_2022kr_flush()
274 return (*filter->flush_function)(filter->data); in mbfl_filt_conv_any_2022kr_flush()