#ifndef EMACS_COMPOSITE_H
#define EMACS_COMPOSITE_H
+#include "font.h"
+
INLINE_HEADER_BEGIN
-#ifndef COMPOSITE_INLINE
-# define COMPOSITE_INLINE INLINE
-#endif
/* Methods to display a sequence of components of a composition. */
enum composition_method {
They don't check validity of PROP. */
/* Return true if PROP is already registered. */
-COMPOSITE_INLINE bool
+INLINE bool
composition_registered_p (Lisp_Object prop)
{
return INTEGERP (XCAR (prop));
/* Return the method of a composition with property PROP. */
-COMPOSITE_INLINE enum composition_method
+INLINE enum composition_method
composition_method (Lisp_Object prop)
{
if (composition_registered_p (prop))
/* Given offsets START and END, return true if PROP is a valid composition
property with length END - START. */
-COMPOSITE_INLINE bool
+INLINE bool
composition_valid_p (ptrdiff_t start, ptrdiff_t end, Lisp_Object prop)
{
return (CONSP (prop)
#define LGSTRING_GLYPH_LEN(lgs) (ASIZE ((lgs)) - 2)
#define LGSTRING_GLYPH(lgs, idx) AREF ((lgs), (idx) + 2)
#define LGSTRING_SET_GLYPH(lgs, idx, val) ASET ((lgs), (idx) + 2, (val))
-COMPOSITE_INLINE Lisp_Object *
+INLINE Lisp_Object *
lgstring_glyph_addr (Lisp_Object lgs, ptrdiff_t idx)
{
return aref_addr (lgs, idx + 2);
#define LGLYPH_WADJUST(g) (VECTORP (LGLYPH_ADJUSTMENT (g)) \
? XINT (AREF (LGLYPH_ADJUSTMENT (g), 2)) : 0)
-struct composition_it;
-struct face;
-struct font_metrics;
-
extern Lisp_Object composition_gstring_put_cache (Lisp_Object, ptrdiff_t);
extern Lisp_Object composition_gstring_from_id (ptrdiff_t);
extern bool composition_gstring_p (Lisp_Object);