summaryrefslogtreecommitdiff
path: root/src/indent.c
diff options
context:
space:
mode:
authorEli Zaretskii <eliz@gnu.org>2019-03-02 12:17:47 +0200
committerEli Zaretskii <eliz@gnu.org>2019-03-02 12:17:47 +0200
commitdbffbe08815644fd30404891ef81496277ed27da (patch)
treef6f572e9445143813327bf8f97c9b1acea967ac0 /src/indent.c
parent2028756fa3db8dc266c0abbf4ecb672ab5348e71 (diff)
downloademacs-dbffbe08815644fd30404891ef81496277ed27da.tar.gz
Fix 'end-of-visual-line' with overlay strings with newlines
* src/indent.c (Fvertical_motion): Get out of overlay strings with embedded newlines even if moving within the same screen line. See https://github.com/emacs-lsp/lsp-mode/issues/677 for more details. Fix test for IT_CHARPOS being at the beginning of the accessible portion of the buffer.
Diffstat (limited to 'src/indent.c')
-rw-r--r--src/indent.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/indent.c b/src/indent.c
index bc1aa8ca2c6..1d5d346e63f 100644
--- a/src/indent.c
+++ b/src/indent.c
@@ -2286,7 +2286,7 @@ whether or not it is currently displayed in some window. */)
it.current_y = 0;
/* Do this even if LINES is 0, so that we move back to the
beginning of the current line as we ought. */
- if ((nlines < 0 && IT_CHARPOS (it) > 0)
+ if ((nlines < 0 && IT_CHARPOS (it) > BEGV)
|| (nlines == 0 && !(start_x_given && start_x <= to_x)))
move_it_by_lines (&it, max (PTRDIFF_MIN, nlines));
}
@@ -2338,7 +2338,7 @@ whether or not it is currently displayed in some window. */)
and then reposition point at the requested X coordinate;
if we don't, the cursor will be placed just after the
string, which might not be the requested column. */
- if (nlines > 0 && it.area == TEXT_AREA)
+ if (nlines >= 0 && it.area == TEXT_AREA)
{
while (it.method == GET_FROM_STRING
&& !it.string_from_display_prop_p