summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorEli Zaretskii <eliz@gnu.org>2015-01-10 15:03:51 +0200
committerEli Zaretskii <eliz@gnu.org>2015-01-10 15:03:51 +0200
commitb544ab561fcb575790c963a2eda51524fa366409 (patch)
tree2f02486d62f28aa58a2f09e82c58f4942d489025 /src
parent1f179ea1bac65d911c616dafbf7147f0dbb39afd (diff)
downloademacs-b544ab561fcb575790c963a2eda51524fa366409.tar.gz
Fix return value of vertical-motion at ZV (Bug#19553)
src/indent.c (Fvertical_motion): Return zero if we started from ZV and there's an overlay after-string there.
Diffstat (limited to 'src')
-rw-r--r--src/ChangeLog5
-rw-r--r--src/indent.c7
2 files changed, 11 insertions, 1 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index 49152c886f3..6296302dc5e 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,8 @@
+2015-01-10 Eli Zaretskii <eliz@gnu.org>
+
+ * indent.c (Fvertical_motion): Return zero if we started from ZV
+ and there's an overlay after-string there. (Bug#19553)
+
2015-01-09 Eli Zaretskii <eliz@gnu.org>
* emacs.c (usage_message): Fix the description of the -nl switch.
diff --git a/src/indent.c b/src/indent.c
index 8b6ecd16a67..cadafcf2c30 100644
--- a/src/indent.c
+++ b/src/indent.c
@@ -2137,10 +2137,15 @@ whether or not it is currently displayed in some window. */)
if (nlines > 1)
move_it_by_lines (&it, min (PTRDIFF_MAX, nlines - 1));
}
- else
+ else /* it_start = ZV */
{
it.vpos = 0;
move_it_by_lines (&it, min (PTRDIFF_MAX, nlines));
+ /* We could have some display or overlay string at ZV,
+ in which case it.vpos will be nonzero now, while
+ actually we didn't move vertically at all. */
+ if (IT_CHARPOS (it) == CHARPOS (pt) && CHARPOS (pt) == it_start)
+ it.vpos = 0;
}
}