Fix infloop in redisplay due to truncated lines and invisible text
* src/xdisp.c (forward_to_next_line_start): Don't call 'get_next_display_element' after finding the end of line. This avoids setting the row's end position to the wrong value when the next screen line begins with invisible text; that wrong value caused set_cursor_from_row position the cursor in the wrong screen line, and eventually triggered bug#24109.
This commit is contained in:
parent
a6e0a67701
commit
3566644a33
1 changed files with 3 additions and 2 deletions
|
@ -6298,9 +6298,10 @@ forward_to_next_line_start (struct it *it, bool *skipped_p,
|
|||
}
|
||||
else
|
||||
{
|
||||
while (get_next_display_element (it)
|
||||
&& !newline_found_p)
|
||||
while (!newline_found_p)
|
||||
{
|
||||
if (!get_next_display_element (it))
|
||||
break;
|
||||
newline_found_p = ITERATOR_AT_END_OF_LINE_P (it);
|
||||
if (newline_found_p && it->bidi_p && bidi_it_prev)
|
||||
*bidi_it_prev = it->bidi_it;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue