From 648ab841cc84132db064848c92f0d0b70ec7b532 Mon Sep 17 00:00:00 2001 From: Kenichi Handa Date: Thu, 12 Feb 2009 05:54:20 +0000 Subject: [PATCH] (fill_gstring_glyph_string): Adjusted for the change of .u.cmp.to. Check if the glyph belongs to the same composition. (append_composite_glyph): Adjusted for the change of .u.cmp.to. --- src/xdisp.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/xdisp.c b/src/xdisp.c index 04a91f45b84..518ec9524f5 100644 --- a/src/xdisp.c +++ b/src/xdisp.c @@ -19688,15 +19688,16 @@ fill_gstring_glyph_string (s, face_id, start, end, overlaps) last = s->row->glyphs[s->area] + end; s->cmp_id = glyph->u.cmp.id; s->cmp_from = glyph->u.cmp.from; - s->cmp_to = glyph->u.cmp.to; + s->cmp_to = glyph->u.cmp.to + 1; s->face = FACE_FROM_ID (s->f, face_id); lgstring = composition_gstring_from_id (s->cmp_id); s->font = XFONT_OBJECT (LGSTRING_FONT (lgstring)); glyph++; while (glyph < last && glyph->u.cmp.automatic - && glyph->u.cmp.id == s->cmp_id) - s->cmp_to = (glyph++)->u.cmp.to; + && glyph->u.cmp.id == s->cmp_id + && s->cmp_to == glyph->u.cmp.from) + s->cmp_to = (glyph++)->u.cmp.to + 1; for (i = s->cmp_from; i < s->cmp_to; i++) { @@ -19905,7 +19906,7 @@ x_get_glyph_overhangs (glyph, f, left, right) struct font_metrics metrics; composition_gstring_width (gstring, glyph->u.cmp.from, - glyph->u.cmp.to, &metrics); + glyph->u.cmp.to + 1, &metrics); if (metrics.rbearing > metrics.width) *right = metrics.rbearing; if (metrics.lbearing < 0) @@ -20653,7 +20654,7 @@ append_composite_glyph (it) glyph->u.cmp.automatic = 1; glyph->u.cmp.id = it->cmp_it.id; glyph->u.cmp.from = it->cmp_it.from; - glyph->u.cmp.to = it->cmp_it.to; + glyph->u.cmp.to = it->cmp_it.to - 1; } glyph->avoid_cursor_p = it->avoid_cursor_p; glyph->multibyte_p = it->multibyte_p; -- 2.39.5