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.
This commit is contained in:
parent
2028756fa3
commit
dbffbe0881
1 changed files with 2 additions and 2 deletions
|
@ -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
|
||||
|
|
Loading…
Add table
Reference in a new issue