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 [EMACS_23_1_RC]


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

CVSROOT:        /sources/emacs
Module name:    emacs
Branch:         EMACS_23_1_RC
Changes by:     Chong Yidong <cyd>      09/07/21 20:08:54

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&only_with_tag=EMACS_23_1_RC&r1=1.7586.2.27&r2=1.7586.2.28
http://cvs.savannah.gnu.org/viewcvs/emacs/src/xdisp.c?cvsroot=emacs&only_with_tag=EMACS_23_1_RC&r1=1.1288.2.1&r2=1.1288.2.2

Patches:
Index: ChangeLog
===================================================================
RCS file: /sources/emacs/emacs/src/ChangeLog,v
retrieving revision 1.7586.2.27
retrieving revision 1.7586.2.28
diff -u -b -r1.7586.2.27 -r1.7586.2.28
--- ChangeLog   17 Jul 2009 01:26:41 -0000      1.7586.2.27
+++ ChangeLog   21 Jul 2009 20:08:49 -0000      1.7586.2.28
@@ -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-17  Kenichi Handa  <address@hidden>
 
        * casetab.c (shuffle): Fix the logic of setting up the cycle.

Index: xdisp.c
===================================================================
RCS file: /sources/emacs/emacs/src/xdisp.c,v
retrieving revision 1.1288.2.1
retrieving revision 1.1288.2.2
diff -u -b -r1.1288.2.1 -r1.1288.2.2
--- xdisp.c     7 Jul 2009 01:41:57 -0000       1.1288.2.1
+++ xdisp.c     21 Jul 2009 20:08:52 -0000      1.1288.2.2
@@ -7108,8 +7108,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 (;;)
     {
@@ -7292,8 +7291,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;
@@ -7304,7 +7307,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]