/* Header for composite sequence handler.
- Copyright (C) 2001-2013 Free Software Foundation, Inc.
+ Copyright (C) 2001-2016 Free Software Foundation, Inc.
Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011
National Institute of Advanced Industrial Science and Technology (AIST)
Registration Number H14PRO021
GNU Emacs is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
GNU Emacs is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
#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));
gref = (rule_code) / 12; \
if (gref > 12) gref = 11; \
nref = (rule_code) % 12; \
- } while (0)
+ } while (false)
/* Like COMPOSITION_DECODE_REFS (RULE_CODE, GREF, NREF), but also
decode RULE_CODE into XOFF and YOFF (vertical offset). */
xoff = (rule_code) >> 16; \
yoff = ((rule_code) >> 8) & 0xFF; \
COMPOSITION_DECODE_REFS (rule_code, gref, nref); \
- } while (0)
+ } while (false)
/* Nonzero if the global reference point GREF and new reference point NREF are
valid. */
/* How many columns the overall glyphs occupy on the screen. This
gives an approximate value for column calculation in
Fcurrent_column, and etc. */
- unsigned short width;
+ int width;
/* Method of the composition. */
enum composition_method method;
#define CHECK_BORDER (CHECK_HEAD | CHECK_TAIL)
#define CHECK_ALL (CHECK_BORDER | CHECK_INSIDE)
-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);
/* 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);