GNU bug report logs -
#11199
24.0.95; killing right-to-left text at eob leads to inconsistent state
Previous Next
Full log
View this message in rfc822 format
Eli Zaretskii <eliz <at> gnu.org> writes:
> Here's the patch to try:
>
> === modified file 'src/xdisp.c'
> --- src/xdisp.c 2012-03-31 19:30:53 +0000
> +++ src/xdisp.c 2012-04-09 11:46:50 +0000
> @@ -16602,7 +16602,15 @@ find_last_unchanged_at_beg_row (struct w
> continued. */
> && !(MATRIX_ROW_END_CHARPOS (row) == first_changed_pos
> && (row->continued_p
> - || row->exact_window_width_line_p)))
> + || row->exact_window_width_line_p))
> + /* If ROW->end is beyond ZV, then ROW->end is outdated and
> + needs to be recomputed, so don't consider this row as
> + unchanged. This happens when the last line was
> + bidi-reordered and was killed immediately before this
> + redisplay cycle. In that case, ROW->end stores the
> + buffer position of the first visual-order character of
> + the next row, which is now beyond ZV. */
> + && CHARPOS (row->end.pos) <= ZV)
> row_found = row;
>
> /* Stop if last visible row. */
>
I can verify that this patch keeps the original recipe from causing
Emacs to crash. Everything looks good for now.
--
Michael Welsh Duggan
(md5i <at> md5i.com)
This bug report was last modified 13 years and 100 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.