]> git.eshelyaron.com Git - emacs.git/commitdiff
(Fvertical_motion): Undo 2004-11-16 change.
authorKim F. Storm <storm@cua.dk>
Thu, 18 Nov 2004 11:00:38 +0000 (11:00 +0000)
committerKim F. Storm <storm@cua.dk>
Thu, 18 Nov 2004 11:00:38 +0000 (11:00 +0000)
Instead, move back again if reseating moves too far ahead.

src/ChangeLog
src/indent.c

index c9c4edd83fcf1c50f667c3c7c2152000ebf5cc0d..0efd6d5d11c35363362c82e5fdd3a403d90537cd 100644 (file)
@@ -1,4 +1,9 @@
-2004-11-16  Luc Teirlinck  <teirllm@auburn.edu>
+2004-11-18  Kim F. Storm  <storm@cua.dk>
+
+       * indent.c (Fvertical_motion): Undo 2004-11-16 change.
+       Instead, move back again if reseating moves too far ahead.
+
+2004-11-17  Luc Teirlinck  <teirllm@auburn.edu>
 
        * xdisp.c (message3): Call clear_message.
 
index 0ece40790a797991ec64c547f64a004a2e1c4a38..0b73751a5f74a3bf3c0997cfb1e1116407b794b6 100644 (file)
@@ -2078,16 +2078,16 @@ whether or not it is currently displayed in some window.  */)
         we end up with the iterator placed at where it thinks X is 0,
         while the end position is really at some X > 0, the same X that
         PT had.  */
-      if (XINT (lines) < 0)
-       {
-         reseat_at_previous_visible_line_start (&it);
-         it.current_x = it.hpos = 0;
-         move_it_to (&it, PT, -1, -1, -1, MOVE_TO_POS);
-         it.vpos = 0;
-       }
-      else
-       move_it_by_lines (&it, 0, 0);
+      reseat_at_previous_visible_line_start (&it);
+      it.current_x = it.hpos = 0;
+      move_it_to (&it, PT, -1, -1, -1, MOVE_TO_POS);
+
+      /* Move back if we got too far.  This may happen if
+        truncate-lines is on and PT is beyond right margin.  */
+      if (IT_CHARPOS (it) > PT && XINT (lines) > 0)
+       move_it_by_lines (&it, -1, 0);
 
+      it.vpos = 0;
       if (XINT (lines) != 0)
        move_it_by_lines (&it, XINT (lines), 0);