emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] emacs/src xdisp.c


From: Kenichi Handa
Subject: [Emacs-diffs] emacs/src xdisp.c
Date: Thu, 12 Feb 2009 05:54:21 +0000

CVSROOT:        /cvsroot/emacs
Module name:    emacs
Changes by:     Kenichi Handa <handa>   09/02/12 05:54:21

Modified files:
        src            : xdisp.c 

Log message:
        (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.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/emacs/src/xdisp.c?cvsroot=emacs&r1=1.1275&r2=1.1276

Patches:
Index: xdisp.c
===================================================================
RCS file: /cvsroot/emacs/emacs/src/xdisp.c,v
retrieving revision 1.1275
retrieving revision 1.1276
diff -u -b -r1.1275 -r1.1276
--- xdisp.c     10 Jan 2009 18:41:07 -0000      1.1275
+++ xdisp.c     12 Feb 2009 05:54:20 -0000      1.1276
@@ -19688,15 +19688,16 @@
   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 @@
          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 @@
          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;




reply via email to

[Prev in Thread] Current Thread [Next in Thread]