(MAYBE_UNIFY_CHAR): Call maybe_unify_char instead of
authorKenichi Handa <handa@m17n.org>
Thu, 27 Nov 2008 07:59:35 +0000 (07:59 +0000)
committerKenichi Handa <handa@m17n.org>
Thu, 27 Nov 2008 07:59:35 +0000 (07:59 +0000)
Funify_charset.

src/character.h

index 44b8b29..34e696e 100644 (file)
@@ -574,26 +574,18 @@ extern char unibyte_has_multibyte_table[256];
 /* If C is a character to be unified with a Unicode character, return
    the unified Unicode character.  */
 
-#define MAYBE_UNIFY_CHAR(c)                                    \
-  if (c > MAX_UNICODE_CHAR                                     \
-      && CHAR_TABLE_P (Vchar_unify_table))                     \
-    {                                                          \
-      Lisp_Object val;                                         \
-      int unified;                                             \
-                                                               \
-      val = CHAR_TABLE_REF (Vchar_unify_table, c);             \
-      if (! NILP (val))                                                \
-       {                                                       \
-         if (SYMBOLP (val))                                    \
-           {                                                   \
-             Funify_charset (val, Qnil, Qnil);                 \
-             val = CHAR_TABLE_REF (Vchar_unify_table, c);      \
-           }                                                   \
-         if ((unified = XINT (val)) >= 0)                      \
-           c = unified;                                        \
-       }                                                       \
-    }                                                          \
-  else
+#define MAYBE_UNIFY_CHAR(c)                            \
+  do {                                                 \
+    if (c > MAX_UNICODE_CHAR && c <= MAX_5_BYTE_CHAR)  \
+      {                                                        \
+       Lisp_Object val;                                \
+       val = CHAR_TABLE_REF (Vchar_unify_table, c);    \
+       if (INTEGERP (val))                             \
+         c = XINT (val);                               \
+       else if (! NILP (val))                          \
+         c = maybe_unify_char (c, val);                \
+      }                                                        \
+  } while (0)
 
 
 /* Return the width of ASCII character C.  The width is measured by