+ while ( CONSP (rest) )
+ {
+ decomp_f = XCAR (rest);
+ GCPRO1 (rest);
+ seq = Fchar_feature (make_char (ch), decomp_f, Qnil,
+ Qnil, Qnil);
+ UNGCPRO;
+ if ( !NILP (seq) )
+ break;
+ rest = XCDR (rest);
+ }
+
+ if ( CONSP (seq) )
+ {
+ Lisp_Object base = Fcar (seq);
+
+ seq = Fcdr (seq);
+ if ( CHARP (base) && CONSP (seq) )
+ {
+ Lisp_Object comb = Fcar (seq);
+
+ if ( CHARP (comb) )
+ {
+ char_encode_utf8 (str, XCHAR (base), dst, flags);
+ char_encode_utf8 (str, XCHAR (comb), dst, flags);
+ return;
+ }
+ }
+ }
+ }
+
+ map = CODING_SYSTEM_ISO2022_INITIAL_CHARSET (str->codesys, 1);