1
0
mirror of https://git.savannah.gnu.org/git/emacs.git synced 2024-12-12 09:28:24 +00:00

* composite.h (COMPOSITION_DECODE_REFS): New macro,

breaking out part of COMPOSITION_DECODE_RULE.
(COMPOSITION_DECODE_RULE): Use it.
* composite.c (get_composition_id): Remove unused local vars,
by using the new macro.
This commit is contained in:
Paul Eggert 2011-04-04 12:46:32 -07:00
parent 1e792e4d80
commit b13a45c6f9
3 changed files with 22 additions and 10 deletions

View File

@ -1,5 +1,11 @@
2011-04-04 Paul Eggert <eggert@cs.ucla.edu> 2011-04-04 Paul Eggert <eggert@cs.ucla.edu>
* composite.h (COMPOSITION_DECODE_REFS): New macro,
breaking out part of COMPOSITION_DECODE_RULE.
(COMPOSITION_DECODE_RULE): Use it.
* composite.c (get_composition_id): Remove unused local vars,
by using the new macro.
* textprop.c (set_text_properties_1): Change while to do-while, * textprop.c (set_text_properties_1): Change while to do-while,
since the condition is always true at first. since the condition is always true at first.

View File

@ -354,7 +354,7 @@ get_composition_id (EMACS_INT charpos, EMACS_INT bytepos, EMACS_INT nchars,
for (i = 1; i < glyph_len; i += 2) for (i = 1; i < glyph_len; i += 2)
{ {
int rule, gref, nref, xoff, yoff; int rule, gref, nref;
int this_width; int this_width;
float this_left; float this_left;
@ -376,7 +376,7 @@ get_composition_id (EMACS_INT charpos, EMACS_INT bytepos, EMACS_INT nchars,
| | | |
6---7---8 -- descent 6---7---8 -- descent
*/ */
COMPOSITION_DECODE_RULE (rule, gref, nref, xoff, yoff); COMPOSITION_DECODE_REFS (rule, gref, nref);
this_left = (leftmost this_left = (leftmost
+ (gref % 3) * (rightmost - leftmost) / 2.0 + (gref % 3) * (rightmost - leftmost) / 2.0
- (nref % 3) * this_width / 2.0); - (nref % 3) * this_width / 2.0);

View File

@ -126,19 +126,26 @@ extern Lisp_Object composition_temp;
->contents[(n) * 2 - 1]) ->contents[(n) * 2 - 1])
/* Decode encoded composition rule RULE_CODE into GREF (global /* Decode encoded composition rule RULE_CODE into GREF (global
reference point code), NREF (new reference point code), XOFF reference point code), NREF (new ref. point code). Don't check RULE_CODE;
(horizontal offset) YOFF (vertical offset). Don't check RULE_CODE,
always set GREF and NREF to valid values. By side effect, always set GREF and NREF to valid values. By side effect,
RULE_CODE is modified. */ RULE_CODE is modified. */
#define COMPOSITION_DECODE_REFS(rule_code, gref, nref) \
do { \
rule_code &= 0xFF; \
gref = (rule_code) / 12; \
if (gref > 12) gref = 11; \
nref = (rule_code) % 12; \
} while (0)
/* Like COMPOSITION_DECODE_REFS (RULE_CODE, GREF, NREF), but also
decode RULE_CODE into XOFF and YOFF (vertical offset). */
#define COMPOSITION_DECODE_RULE(rule_code, gref, nref, xoff, yoff) \ #define COMPOSITION_DECODE_RULE(rule_code, gref, nref, xoff, yoff) \
do { \ do { \
xoff = (rule_code) >> 16; \ xoff = (rule_code) >> 16; \
yoff = ((rule_code) >> 8) & 0xFF; \ yoff = ((rule_code) >> 8) & 0xFF; \
rule_code &= 0xFF; \ COMPOSITION_DECODE_REFS (rule_code, gref, nref); \
gref = (rule_code) / 12; \
if (gref > 12) gref = 11; \
nref = (rule_code) % 12; \
} while (0) } while (0)
/* Return encoded composition rule for the pair of global reference /* Return encoded composition rule for the pair of global reference
@ -281,7 +288,7 @@ enum lglyph_indices
else \ else \
ASET ((g), LGLYPH_IX_CODE, make_number (val)); \ ASET ((g), LGLYPH_IX_CODE, make_number (val)); \
} while (0) } while (0)
#define LGLYPH_SET_WIDTH(g, val) ASET ((g), LGLYPH_IX_WIDTH, make_number (val)) #define LGLYPH_SET_WIDTH(g, val) ASET ((g), LGLYPH_IX_WIDTH, make_number (val))
#define LGLYPH_SET_LBEARING(g, val) ASET ((g), LGLYPH_IX_LBEARING, make_number (val)) #define LGLYPH_SET_LBEARING(g, val) ASET ((g), LGLYPH_IX_LBEARING, make_number (val))
#define LGLYPH_SET_RBEARING(g, val) ASET ((g), LGLYPH_IX_RBEARING, make_number (val)) #define LGLYPH_SET_RBEARING(g, val) ASET ((g), LGLYPH_IX_RBEARING, make_number (val))
@ -321,4 +328,3 @@ extern EMACS_INT composition_adjust_point (EMACS_INT, EMACS_INT);
EXFUN (Fcomposition_get_gstring, 4); EXFUN (Fcomposition_get_gstring, 4);
#endif /* not EMACS_COMPOSITE_H */ #endif /* not EMACS_COMPOSITE_H */