From: Kenichi Handa Date: Sun, 16 Sep 2012 16:17:31 +0000 (+0900) Subject: font.c (Ffont_shape_gstring): Fix previous change; GLYPHs may not covert the last... X-Git-Tag: emacs-24.2.90~272 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=85a43e2ea45592610c43a25468aabef921c709f8;p=emacs.git font.c (Ffont_shape_gstring): Fix previous change; GLYPHs may not covert the last few charactes. --- diff --git a/src/ChangeLog b/src/ChangeLog index cfcd2b0e2f1..be734134adf 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,8 @@ +2012-09-17 Kenichi Handa + + * font.c (Ffont_shape_gstring): Fix previous change; GLYPHs may + not covert the last few charactes. + 2012-09-16 Kenichi Handa * font.c (Ffont_shape_gstring): Don't adjust grapheme cluster diff --git a/src/font.c b/src/font.c index 32194d1bb02..fc970254a62 100644 --- a/src/font.c +++ b/src/font.c @@ -4330,10 +4330,10 @@ GSTRING. */) LGSTRING_SET_GLYPH (gstring, XINT (n), Qnil); /* Check FROM_IDX and TO_IDX of each GLYPH in GSTRING to assure that - GLYPHS covers all characters in GSTRING. More formally, provided - that NCHARS is the number of characters in GSTRING, N is the - number of glyphs, and GLYPHS[i] is the ith glyph, FROM_IDX and - TO_IDX of each glyph must satisfy these conditions: + GLYPHS covers all characters (except for the last few ones) in + GSTRING. More formally, provided that NCHARS is the number of + characters in GSTRING and GLYPHS[i] is the ith glyph, FROM_IDX + and TO_IDX of each glyph must satisfy these conditions: GLYPHS[0].FROM_IDX == 0 GLYPHS[i].FROM_IDX <= GLYPHS[i].TO_IDX @@ -4342,8 +4342,7 @@ GSTRING. */) GLYPHS[i].TO_IDX == GLYPHS[i-1].TO_IDX else ;; Be sure to cover all characters. - GLYPHS[i].FROM_IDX == GLYPHS[i-1].TO_IDX + 1 - GLYPHS[N-1].TO_IDX == NCHARS - 1 */ + GLYPHS[i].FROM_IDX == GLYPHS[i-1].TO_IDX + 1 */ glyph = LGSTRING_GLYPH (gstring, 0); from = LGLYPH_FROM (glyph); to = LGLYPH_TO (glyph); @@ -4362,8 +4361,6 @@ GSTRING. */) from = LGLYPH_FROM (glyph); to = LGLYPH_TO (glyph); } - if (to != LGSTRING_CHAR_LEN (gstring) - 1) - goto shaper_error; return composition_gstring_put_cache (gstring, XINT (n)); shaper_error: