/* 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
#define COMPOSITION_GLYPH(cmp, n) \
XINT (XVECTOR (XVECTOR (XHASH_TABLE (composition_hash_table) \
->key_and_value) \
- ->u.contents[cmp->hash_index * 2]) \
- ->u.contents[cmp->method == COMPOSITION_WITH_RULE_ALTCHARS \
+ ->contents[cmp->hash_index * 2]) \
+ ->contents[cmp->method == COMPOSITION_WITH_RULE_ALTCHARS \
? (n) * 2 : (n)])
/* Return the encoded composition rule to compose the Nth glyph of
#define COMPOSITION_RULE(cmp, n) \
XINT (XVECTOR (XVECTOR (XHASH_TABLE (composition_hash_table) \
->key_and_value) \
- ->u.contents[cmp->hash_index * 2]) \
- ->u.contents[(n) * 2 - 1])
+ ->contents[cmp->hash_index * 2]) \
+ ->contents[(n) * 2 - 1])
/* Decode encoded composition rule RULE_CODE into GREF (global
reference point code), NREF (new ref. point code). Don't check RULE_CODE;
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);