Add an EXFUN for `Ffind_char'.
[chise/xemacs-chise.git-] / src / text-coding.c
index 53ec90c..187d2a9 100644 (file)
@@ -2260,7 +2260,7 @@ struct decoding_stream
 };
 
 #ifdef UTF2000
-extern Lisp_Object Vcharacter_composition_table;
+extern Lisp_Object Qcomposition;
 
 INLINE_HEADER void
 decode_flush_er_chars (struct decoding_stream *str, unsigned_char_dynarr* dst);
@@ -2405,11 +2405,10 @@ COMPOSE_ADD_CHAR (struct decoding_stream *str,
 {
   if (CODING_SYSTEM_DISABLE_COMPOSITION (str->codesys))
     decode_add_er_char (str, character, dst);
-  else if (!CHAR_TABLEP (str->combining_table))
+  else if (!CONSP (str->combining_table))
     {
       Lisp_Object ret
-       = get_char_id_table (XCHAR_TABLE(Vcharacter_composition_table),
-                            character);
+       = Fget_char_attribute (make_char (character), Qcomposition, Qnil);
 
       if (NILP (ret))
        decode_add_er_char (str, character, dst);
@@ -2422,16 +2421,12 @@ COMPOSE_ADD_CHAR (struct decoding_stream *str,
     }
   else
     {
-      Lisp_Object ret
-       = get_char_id_table (XCHAR_TABLE(str->combining_table),
-                            character);
+      Lisp_Object ret = Fcdr (Fassq (make_char (character), str->combining_table));
 
       if (CHARP (ret))
        {
          Emchar char2 = XCHARVAL (ret);
-         ret =
-           get_char_id_table (XCHAR_TABLE(Vcharacter_composition_table),
-                              char2);
+         ret = Fget_char_attribute (make_char (character), Qcomposition, Qnil);
          if (NILP (ret))
            {
              decode_add_er_char (str, character, dst);
@@ -2445,11 +2440,6 @@ COMPOSE_ADD_CHAR (struct decoding_stream *str,
              str->combining_table = ret;
            }
        }
-      else if (CHAR_TABLEP (ret))
-       {
-         str->combined_chars[str->combined_char_count++] = character;
-         str->combining_table = ret;
-       }
       else
        {
          COMPOSE_FLUSH_CHARS (str, dst);