emacs-diffs
[Top][All Lists]
Advanced

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

[Emacs-diffs] emacs/src ChangeLog xdisp.c


From: Chong Yidong
Subject: [Emacs-diffs] emacs/src ChangeLog xdisp.c
Date: Tue, 21 Jul 2009 20:12:11 +0000

CVSROOT:        /sources/emacs
Module name:    emacs
Changes by:     Chong Yidong <cyd>      09/07/21 20:12:11

Modified files:
        src            : ChangeLog xdisp.c 

Log message:
        * xdisp.c (move_it_to): For continued lines ending in a tab, take
        the overflowed pixels into account (Bug#3879).

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/emacs/src/ChangeLog?cvsroot=emacs&r1=1.7657&r2=1.7658
http://cvs.savannah.gnu.org/viewcvs/emacs/src/xdisp.c?cvsroot=emacs&r1=1.1293&r2=1.1294

Patches:
Index: ChangeLog
===================================================================
RCS file: /sources/emacs/emacs/src/ChangeLog,v
retrieving revision 1.7657
retrieving revision 1.7658
diff -u -b -r1.7657 -r1.7658
--- ChangeLog   21 Jul 2009 09:26:43 -0000      1.7657
+++ ChangeLog   21 Jul 2009 20:12:09 -0000      1.7658
@@ -1,3 +1,8 @@
+2009-07-21  Chong Yidong  <address@hidden>
+
+       * xdisp.c (move_it_to): For continued lines ending in a tab, take
+       the overflowed pixels into account (Bug#3879).
+
 2009-07-21  Ken Raeburn  <address@hidden>
 
        * lread.c (load_depth): New variable.

Index: xdisp.c
===================================================================
RCS file: /sources/emacs/emacs/src/xdisp.c,v
retrieving revision 1.1293
retrieving revision 1.1294
diff -u -b -r1.1293 -r1.1294
--- xdisp.c     7 Jul 2009 06:25:20 -0000       1.1293
+++ xdisp.c     21 Jul 2009 20:12:10 -0000      1.1294
@@ -7090,8 +7090,7 @@
      int op;
 {
   enum move_it_result skip, skip2 = MOVE_X_REACHED;
-  int line_height;
-  int reached = 0;
+  int line_height, line_start_x = 0, reached = 0;
 
   for (;;)
     {
@@ -7274,8 +7273,12 @@
              if (it->current_x != it->last_visible_x
                  && (op & MOVE_TO_VPOS)
                  && !(op & (MOVE_TO_X | MOVE_TO_POS)))
+               {
+                 line_start_x = it->current_x + it->pixel_width
+                   - it->last_visible_x;
                set_iterator_to_next (it, 0);
            }
+           }
          else
            it->continuation_lines_width += it->current_x;
          break;
@@ -7286,7 +7289,9 @@
 
       /* Reset/increment for the next run.  */
       recenter_overlay_lists (current_buffer, IT_CHARPOS (*it));
-      it->current_x = it->hpos = 0;
+      it->current_x = line_start_x;
+      line_start_x = 0;
+      it->hpos = 0;
       it->current_y += it->max_ascent + it->max_descent;
       ++it->vpos;
       last_height = it->max_ascent + it->max_descent;




reply via email to

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