emacs-diffs
[Top][All Lists]
Advanced

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

[Emacs-diffs] Changes to emacs/src/xdisp.c,v


From: Chong Yidong
Subject: [Emacs-diffs] Changes to emacs/src/xdisp.c,v
Date: Tue, 10 Apr 2007 15:57:26 +0000

CVSROOT:        /cvsroot/emacs
Module name:    emacs
Changes by:     Chong Yidong <cyd>      07/04/10 15:57:25

Index: xdisp.c
===================================================================
RCS file: /cvsroot/emacs/emacs/src/xdisp.c,v
retrieving revision 1.1145
retrieving revision 1.1146
diff -u -b -r1.1145 -r1.1146
--- xdisp.c     8 Apr 2007 13:33:03 -0000       1.1145
+++ xdisp.c     10 Apr 2007 15:57:25 -0000      1.1146
@@ -22437,7 +22437,7 @@
 
   Lisp_Object mouse_face;
   int original_x_pixel = x;
-  struct glyph * glyph = NULL;
+  struct glyph * glyph = NULL, * row_start_glyph = NULL;
   struct glyph_row *row;
 
   if (area == ON_MODE_LINE || area == ON_HEADER_LINE)
@@ -22455,7 +22455,7 @@
       /* Find glyph */
       if (row->mode_line_p && row->enabled_p)
        {
-         glyph = row->glyphs[TEXT_AREA];
+         glyph = row_start_glyph = row->glyphs[TEXT_AREA];
          end = glyph + row->used[TEXT_AREA];
 
          for (x0 = original_x_pixel;
@@ -22579,12 +22579,17 @@
             is converted to a flatten by emacs lisp interpreter.
             The internal string is an element of the structures.
             The displayed string is the flatten string. */
-         for (tmp_glyph = glyph - 1, gpos = 0;
-              tmp_glyph->charpos >= XINT (b);
-              tmp_glyph--, gpos++)
+         gpos = 0;
+         if (glyph > row_start_glyph)
            {
-             if (!EQ (tmp_glyph->object, glyph->object))
-               break;
+             tmp_glyph = glyph - 1;
+             while (tmp_glyph >= row_start_glyph
+                    && tmp_glyph->charpos >= XINT (b)
+                    && EQ (tmp_glyph->object, glyph->object))
+               {
+                 tmp_glyph--;
+                 gpos++;
+               }
            }
 
          /* Calculate the lenght(glyph sequence length: GSEQ_LENGTH) of




reply via email to

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