(COMPOSITION_METHOD): Handle
authorKenichi Handa <handa@m17n.org>
Mon, 3 Dec 2007 14:39:51 +0000 (14:39 +0000)
committerKenichi Handa <handa@m17n.org>
Mon, 3 Dec 2007 14:39:51 +0000 (14:39 +0000)
COMPOSITION_WITH_GLYPH_STRING.

src/composite.h

index 5a42682..ab77a9f 100644 (file)
@@ -92,9 +92,13 @@ extern Lisp_Object composition_temp;
    : (composition_temp = XCDR (XCAR (prop)),                           \
       (NILP (composition_temp)                                         \
        ? COMPOSITION_RELATIVE                                          \
-       : ((INTEGERP (composition_temp) || STRINGP (composition_temp))  \
-         ? COMPOSITION_WITH_ALTCHARS                                   \
-         : COMPOSITION_WITH_RULE_ALTCHARS))))
+       : (INTEGERP (composition_temp) || STRINGP (composition_temp))   \
+       ? COMPOSITION_WITH_ALTCHARS                                     \
+       : (VECTORP (composition_temp)                                   \
+         && ASIZE (composition_temp) >= 2                              \
+         && VECTORP (AREF (composition_temp, 0)))                      \
+       ? COMPOSITION_WITH_GLYPH_STRING                                 \
+       : COMPOSITION_WITH_RULE_ALTCHARS)))
 
 /* Return 1 if the composition is valid.  It is valid if length of
    the composition equals to (END - START).  */