X-Git-Url: https://code.delx.au/gnu-emacs/blobdiff_plain/8c74a125c85da08e34dceedb271b71b5f09ce690..fb39b937b0628f4592b07d0aa61a41cf696abd30:/src/composite.h diff --git a/src/composite.h b/src/composite.h index 845411f5cd..9462b932c6 100644 --- a/src/composite.h +++ b/src/composite.h @@ -25,6 +25,11 @@ along with GNU Emacs. If not, see . */ #ifndef EMACS_COMPOSITE_H #define EMACS_COMPOSITE_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 { /* Compose relatively without alternate characters. */ @@ -108,7 +113,7 @@ extern Lisp_Object composition_temp; && (end - start) == COMPOSITION_LENGTH (prop)) /* Return the Nth glyph of composition specified by CMP. CMP is a - pointer to `struct composition'. */ + pointer to `struct composition'. */ #define COMPOSITION_GLYPH(cmp, n) \ XINT (XVECTOR (XVECTOR (XHASH_TABLE (composition_hash_table) \ ->key_and_value) \ @@ -218,8 +223,8 @@ extern Lisp_Object Qcomposition; extern Lisp_Object composition_hash_table; extern ptrdiff_t get_composition_id (ptrdiff_t, ptrdiff_t, ptrdiff_t, Lisp_Object, Lisp_Object); -extern int find_composition (ptrdiff_t, ptrdiff_t, ptrdiff_t *, ptrdiff_t *, - Lisp_Object *, Lisp_Object); +extern bool find_composition (ptrdiff_t, ptrdiff_t, ptrdiff_t *, ptrdiff_t *, + Lisp_Object *, Lisp_Object); extern void update_compositions (ptrdiff_t, ptrdiff_t, int); extern void make_composition_value_copy (Lisp_Object); extern void compose_region (int, int, Lisp_Object, Lisp_Object, @@ -247,6 +252,11 @@ extern void compose_text (ptrdiff_t, ptrdiff_t, Lisp_Object, Lisp_Object, #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 * +lgstring_glyph_addr (Lisp_Object lgs, ptrdiff_t idx) +{ + return aref_addr (lgs, idx + 2); +} /* Vector size of Lispy glyph. */ enum lglyph_indices @@ -300,20 +310,21 @@ struct font_metrics; extern Lisp_Object composition_gstring_put_cache (Lisp_Object, ptrdiff_t); extern Lisp_Object composition_gstring_from_id (ptrdiff_t); -extern int composition_gstring_p (Lisp_Object); +extern bool composition_gstring_p (Lisp_Object); extern int composition_gstring_width (Lisp_Object, ptrdiff_t, ptrdiff_t, struct font_metrics *); extern void composition_compute_stop_pos (struct composition_it *, ptrdiff_t, ptrdiff_t, ptrdiff_t, Lisp_Object); -extern int composition_reseat_it (struct composition_it *, - ptrdiff_t, ptrdiff_t, ptrdiff_t, - struct window *, struct face *, - Lisp_Object); +extern bool composition_reseat_it (struct composition_it *, ptrdiff_t, + ptrdiff_t, ptrdiff_t, struct window *, + struct face *, Lisp_Object); extern int composition_update_it (struct composition_it *, ptrdiff_t, ptrdiff_t, Lisp_Object); extern ptrdiff_t composition_adjust_point (ptrdiff_t, ptrdiff_t); +INLINE_HEADER_END + #endif /* not EMACS_COMPOSITE_H */