(Qfont_spec, Qfont_entity, Qfont_object): Extern them.
[bpt/emacs.git] / src / composite.h
index 5a42682..95f2fc1 100644 (file)
@@ -1,7 +1,7 @@
 /* Header for composite sequence handler.
    Copyright (C) 2001, 2002, 2003, 2004, 2005,
-                 2006, 2007 Free Software Foundation, Inc.
-   Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007
+                 2006, 2007, 2008 Free Software Foundation, Inc.
+   Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
      National Institute of Advanced Industrial Science and Technology (AIST)
      Registration Number H14PRO021
    Copyright (C) 2003, 2006
@@ -40,10 +40,8 @@ enum composition_method {
   COMPOSITION_WITH_ALTCHARS,
   /* Compose by specified composition rules with alternate characters.  */
   COMPOSITION_WITH_RULE_ALTCHARS,
-#ifdef USE_FONT_BACKEND
   /* Compose by specified lispy glyph-string.  */
   COMPOSITION_WITH_GLYPH_STRING,
-#endif  /* USE_FONT_BACKEND */
   /* This is not a method.  */
   COMPOSITION_NO
 };
@@ -92,9 +90,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).  */
@@ -228,6 +230,9 @@ extern void syms_of_composite P_ ((void));
 extern void compose_text P_ ((int, int, Lisp_Object, Lisp_Object,
                              Lisp_Object));
 
+EXFUN (Fcompose_region_internal, 4);
+EXFUN (Fcompose_string_internal, 5);
+
 #endif /* not EMACS_COMPOSITE_H */
 
 /* arch-tag: 59524d89-c645-47bd-b5e6-65e861690118