@@ -190,6 +190,14 @@ int mbfl_filt_conv_wchar_2022kr(int c, mbfl_convert_filter *filter)
190190{
191191 int c1 , c2 , s = 0 ;
192192
193+ if ((filter -> status & 0x100 ) == 0 ) {
194+ CK ((* filter -> output_function )(0x1b , filter -> data )); /* ESC */
195+ CK ((* filter -> output_function )('$' , filter -> data ));
196+ CK ((* filter -> output_function )(')' , filter -> data ));
197+ CK ((* filter -> output_function )('C' , filter -> data ));
198+ filter -> status |= 0x100 ;
199+ }
200+
193201 if (c >= ucs_a1_uhc_table_min && c < ucs_a1_uhc_table_max ) {
194202 s = ucs_a1_uhc_table [c - ucs_a1_uhc_table_min ];
195203 } else if (c >= ucs_a2_uhc_table_min && c < ucs_a2_uhc_table_max ) {
@@ -211,9 +219,7 @@ int mbfl_filt_conv_wchar_2022kr(int c, mbfl_convert_filter *filter)
211219 /* exclude UHC extension area */
212220 if (c1 < 0xa1 || c2 < 0xa1 ) {
213221 s = c ;
214- }
215-
216- if (s & 0x8000 ) {
222+ } else if (s & 0x8000 ) {
217223 s -= 0x8080 ;
218224 }
219225
@@ -235,13 +241,6 @@ int mbfl_filt_conv_wchar_2022kr(int c, mbfl_convert_filter *filter)
235241 }
236242 CK ((* filter -> output_function )(s , filter -> data ));
237243 } else {
238- if ((filter -> status & 0x100 ) == 0 ) {
239- CK ((* filter -> output_function )(0x1b , filter -> data )); /* ESC */
240- CK ((* filter -> output_function )('$' , filter -> data ));
241- CK ((* filter -> output_function )(')' , filter -> data ));
242- CK ((* filter -> output_function )('C' , filter -> data ));
243- filter -> status |= 0x100 ;
244- }
245244 if ((filter -> status & 0x10 ) == 0 ) {
246245 CK ((* filter -> output_function )(0x0e , filter -> data )); /* shift out */
247246 filter -> status |= 0x10 ;
@@ -259,7 +258,7 @@ int mbfl_filt_conv_wchar_2022kr(int c, mbfl_convert_filter *filter)
259258static int mbfl_filt_conv_any_2022kr_flush (mbfl_convert_filter * filter )
260259{
261260 /* back to ascii */
262- if (filter -> status & 0xff00 ) {
261+ if (filter -> status & 0x10 ) {
263262 CK ((* filter -> output_function )(0x0f , filter -> data )); /* shift in */
264263 }
265264
0 commit comments