]> code.delx.au - gnu-emacs/blobdiff - src/composite.h
Add description of +LINE:COLUMN.
[gnu-emacs] / src / composite.h
index b0af3b7d4ee7033e4a2ffa751f8db26a9e71d91b..d1527f53a4bd7dd54d6e21d65705585f3cfb6c74 100644 (file)
@@ -19,8 +19,8 @@ along with GNU Emacs; see the file COPYING.  If not, write to
 the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
 Boston, MA 02111-1307, USA.  */
 
-#ifndef _COMPOSITE_H
-#define _COMPOSITE_H
+#ifndef EMACS_COMPOSITE_H
+#define EMACS_COMPOSITE_H
 
 /* Methods to display a sequence of components a composition.  */
 enum composition_method {
@@ -90,17 +90,20 @@ extern Lisp_Object composition_temp;
 
 /* Return 1 iff the composition is valid.  It is valid if length of
    the composition equals to (END - START).  */
-#define COMPOSITION_VALID_P(start, end, prop)                                \
-  (CONSP (prop)                                                                      \
-   && (COMPOSITION_REGISTERD_P (prop)                                        \
-       ? (COMPOSITION_ID (prop) >= 0                                         \
-         && COMPOSITION_ID (prop) <= n_compositions                          \
-         && CONSP (XCDR (prop)))                                             \
-       : (composition_temp = XCAR (prop),                                    \
-         (CONSP (composition_temp)                                           \
-          && (composition_temp = XCDR (composition_temp),                    \
-              (NILP (composition_temp) || STRINGP (composition_temp)         \
-               || VECTORP (composition_temp) || CONSP (composition_temp))))))\
+#define COMPOSITION_VALID_P(start, end, prop)                  \
+  (CONSP (prop)                                                        \
+   && (COMPOSITION_REGISTERD_P (prop)                          \
+       ? (COMPOSITION_ID (prop) >= 0                           \
+         && COMPOSITION_ID (prop) <= n_compositions            \
+         && CONSP (XCDR (prop)))                               \
+       : (composition_temp = XCAR (prop),                      \
+         (CONSP (composition_temp)                             \
+          && (composition_temp = XCDR (composition_temp),      \
+              (NILP (composition_temp)                         \
+               || STRINGP (composition_temp)                   \
+               || VECTORP (composition_temp)                   \
+               || INTEGERP (composition_temp)                  \
+               || CONSP (composition_temp))))))                \
    && (end - start) == COMPOSITION_LENGTH (prop))
 
 /* Return the Nth glyph of composition specified by CMP.  CMP is a
@@ -149,13 +152,16 @@ extern Lisp_Object composition_temp;
    ID, and thus share the same instance of this structure.  */
 
 struct composition {
+  /* Number of glyphs of the composition components.  */
+  unsigned glyph_len;
+
+  /* Width, ascent, and descent pixels of the composition.  */
+  short pixel_width, ascent, descent;
+
   /* How many columns the overall glyphs occupy on the screen.  This
      gives an approximate value for column calculation in
      Fcurrent_column, and etc.  */
-  unsigned char width;
-
-  /* Number of glyphs of the composition components.  */
-  unsigned char glyph_len;
+  unsigned short width;
 
   /* Method of the composition.  */
   enum composition_method method;
@@ -173,10 +179,6 @@ struct composition {
      registered in composition_table.  X-offset and Y-offset of Nth
      glyph are (2N)th and (2N+1)th elements respectively.  */
   short *offsets;
-
-  /* Width, ascent, and descent pixels of the composition.  */
-  short pixel_width, ascent, descent;
-
 };
 
 /* Table of pointers to the structure `composition' indexed by
@@ -200,8 +202,12 @@ extern int get_composition_id P_ ((int, int, int, Lisp_Object, Lisp_Object));
 extern int find_composition P_ ((int, int, int *, int *, Lisp_Object *,
                                 Lisp_Object));
 extern void update_compositions P_ ((int, int, int));
+extern void make_composition_value_copy P_ ((Lisp_Object));
 extern void compose_region P_ ((int, int, Lisp_Object, Lisp_Object,
                                Lisp_Object));
-extern void syms_of_composition P_ (());
+extern void syms_of_composition P_ ((void));
+extern void compose_text P_ ((int, int, Lisp_Object, Lisp_Object,
+                             Lisp_Object));
+extern void compose_chars_in_text P_ ((int, int, Lisp_Object));
 
-#endif /* not _COMPOSITE_H */
+#endif /* not EMACS_COMPOSITE_H */