aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorKenichi Handa2009-02-12 05:54:20 +0000
committerKenichi Handa2009-02-12 05:54:20 +0000
commit648ab841cc84132db064848c92f0d0b70ec7b532 (patch)
tree14107afca21b2367d570288d4748f985fe480ae5 /src
parent8ea6fa801ed4788d3f5bc01b8198025587e77871 (diff)
downloademacs-648ab841cc84132db064848c92f0d0b70ec7b532.tar.gz
emacs-648ab841cc84132db064848c92f0d0b70ec7b532.zip
(fill_gstring_glyph_string): Adjusted for the change of
<struct glyph>.u.cmp.to. Check if the glyph belongs to the same composition. (append_composite_glyph): Adjusted for the change of <strcut glyph>.u.cmp.to.
Diffstat (limited to 'src')
-rw-r--r--src/xdisp.c11
1 files 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)
19688 last = s->row->glyphs[s->area] + end; 19688 last = s->row->glyphs[s->area] + end;
19689 s->cmp_id = glyph->u.cmp.id; 19689 s->cmp_id = glyph->u.cmp.id;
19690 s->cmp_from = glyph->u.cmp.from; 19690 s->cmp_from = glyph->u.cmp.from;
19691 s->cmp_to = glyph->u.cmp.to; 19691 s->cmp_to = glyph->u.cmp.to + 1;
19692 s->face = FACE_FROM_ID (s->f, face_id); 19692 s->face = FACE_FROM_ID (s->f, face_id);
19693 lgstring = composition_gstring_from_id (s->cmp_id); 19693 lgstring = composition_gstring_from_id (s->cmp_id);
19694 s->font = XFONT_OBJECT (LGSTRING_FONT (lgstring)); 19694 s->font = XFONT_OBJECT (LGSTRING_FONT (lgstring));
19695 glyph++; 19695 glyph++;
19696 while (glyph < last 19696 while (glyph < last
19697 && glyph->u.cmp.automatic 19697 && glyph->u.cmp.automatic
19698 && glyph->u.cmp.id == s->cmp_id) 19698 && glyph->u.cmp.id == s->cmp_id
19699 s->cmp_to = (glyph++)->u.cmp.to; 19699 && s->cmp_to == glyph->u.cmp.from)
19700 s->cmp_to = (glyph++)->u.cmp.to + 1;
19700 19701
19701 for (i = s->cmp_from; i < s->cmp_to; i++) 19702 for (i = s->cmp_from; i < s->cmp_to; i++)
19702 { 19703 {
@@ -19905,7 +19906,7 @@ x_get_glyph_overhangs (glyph, f, left, right)
19905 struct font_metrics metrics; 19906 struct font_metrics metrics;
19906 19907
19907 composition_gstring_width (gstring, glyph->u.cmp.from, 19908 composition_gstring_width (gstring, glyph->u.cmp.from,
19908 glyph->u.cmp.to, &metrics); 19909 glyph->u.cmp.to + 1, &metrics);
19909 if (metrics.rbearing > metrics.width) 19910 if (metrics.rbearing > metrics.width)
19910 *right = metrics.rbearing; 19911 *right = metrics.rbearing;
19911 if (metrics.lbearing < 0) 19912 if (metrics.lbearing < 0)
@@ -20653,7 +20654,7 @@ append_composite_glyph (it)
20653 glyph->u.cmp.automatic = 1; 20654 glyph->u.cmp.automatic = 1;
20654 glyph->u.cmp.id = it->cmp_it.id; 20655 glyph->u.cmp.id = it->cmp_it.id;
20655 glyph->u.cmp.from = it->cmp_it.from; 20656 glyph->u.cmp.from = it->cmp_it.from;
20656 glyph->u.cmp.to = it->cmp_it.to; 20657 glyph->u.cmp.to = it->cmp_it.to - 1;
20657 } 20658 }
20658 glyph->avoid_cursor_p = it->avoid_cursor_p; 20659 glyph->avoid_cursor_p = it->avoid_cursor_p;
20659 glyph->multibyte_p = it->multibyte_p; 20660 glyph->multibyte_p = it->multibyte_p;