summaryrefslogtreecommitdiff
path: root/src/indent.c
diff options
context:
space:
mode:
authorGerd Moellmann <gerd@gnu.org>2002-04-25 10:39:57 +0000
committerGerd Moellmann <gerd@gnu.org>2002-04-25 10:39:57 +0000
commit3a46a5dec0ae7dc2145edfced2095ca5861cc05f (patch)
treeba8270769b477a2ba81a7710d2f786c04bb6f969 /src/indent.c
parent90077f6669e9f0de988ca21ad335e429b185a208 (diff)
downloademacs-3a46a5dec0ae7dc2145edfced2095ca5861cc05f.tar.gz
(Fvertical_motion): Move to the start of the line
containing PT before moving up or down.
Diffstat (limited to 'src/indent.c')
-rw-r--r--src/indent.c14
1 files changed, 12 insertions, 2 deletions
diff --git a/src/indent.c b/src/indent.c
index 437875f34da..e2f68076075 100644
--- a/src/indent.c
+++ b/src/indent.c
@@ -1,5 +1,5 @@
/* Indentation functions.
- Copyright (C) 1985,86,87,88,93,94,95,98, 2000, 2001
+ Copyright (C) 1985,86,87,88,93,94,95,98, 2000, 2001, 2002
Free Software Foundation, Inc.
This file is part of GNU Emacs.
@@ -2018,7 +2018,17 @@ whether or not it is currently displayed in some window. */)
SET_TEXT_POS (pt, PT, PT_BYTE);
start_display (&it, w, pt);
- move_it_by_lines (&it, XINT (lines), 0);
+
+ /* Move to the start of the line containing PT. If we don't do
+ this, we start moving with IT->current_x == 0, while PT is really
+ at some x > 0. The effect is, in continuation lines, that 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. */
+ move_it_by_lines (&it, 0, 0);
+
+ if (XINT (lines) !+ 0)
+ move_it_by_lines (&it, XINT (lines), 0);
+
SET_PT_BOTH (IT_CHARPOS (it), IT_BYTEPOS (it));
if (BUFFERP (old_buffer))