Fix part 1 of bug #9771 with assertion violation in move_it_by_lines.

src/xdisp.c (move_it_vertically_backward): Don't look for character position
 immediately after the newline when in a continuation line.
This commit is contained in:
Eli Zaretskii 2011-10-17 21:13:44 +02:00
parent 0bc0638017
commit f2ff9e8894
2 changed files with 7 additions and 1 deletions

View file

@ -3,6 +3,9 @@
* xdisp.c (push_display_prop): Determine whether to record string
or buffer position by IT->string, not by IT->method. Allow
GET_FROM_DISPLAY_VECTOR as IT->method on entry. (Bug#9771, part 4)
(move_it_vertically_backward): Don't look for character position
immediately after the newline when in a continuation line.
(Bug#9771, part 1)
2011-10-15 Martin Rudalics <rudalics@gmx.at>

View file

@ -8768,7 +8768,10 @@ move_it_vertically_backward (struct it *it, int dy)
reordering. We want to get to the character position
that is immediately after the newline of the previous
line. */
if (it->bidi_p && IT_CHARPOS (*it) > BEGV
if (it->bidi_p
&& !it->continuation_lines_width
&& !STRINGP (it->string)
&& IT_CHARPOS (*it) > BEGV
&& FETCH_BYTE (IT_BYTEPOS (*it) - 1) != '\n')
{
EMACS_INT nl_pos =