aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorEli Zaretskii2012-04-09 15:28:45 +0300
committerEli Zaretskii2012-04-09 15:28:45 +0300
commite53357c466196161fa36dc35cc215b050b7f88a8 (patch)
tree50c6fb642ed6bc06661fc57084d6a683774cf27e /src
parentaff67c8241806055f8363f924874ab69fe70ed31 (diff)
downloademacs-e53357c466196161fa36dc35cc215b050b7f88a8.tar.gz
emacs-e53357c466196161fa36dc35cc215b050b7f88a8.zip
Fix bug #11199 with killing a line at EOB that was bidi-reordered.
src/xdisp.c (find_last_unchanged_at_beg_row): Don't consider a row "unchanged" if its end.pos is beyond ZV.
Diffstat (limited to 'src')
-rw-r--r--src/ChangeLog5
-rw-r--r--src/xdisp.c10
2 files changed, 14 insertions, 1 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index ef84324c9d9..441a4c00be8 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,8 @@
12012-04-09 Eli Zaretskii <eliz@gnu.org>
2
3 * xdisp.c (find_last_unchanged_at_beg_row): Don't consider a row
4 "unchanged" if its end.pos is beyond ZV. (Bug#11199)
5
12012-04-09 Jan Djärv <jan.h.d@swipnet.se> 62012-04-09 Jan Djärv <jan.h.d@swipnet.se>
2 7
3 * nsterm.m (constrainFrameRect): Always constrain when there is only 8 * nsterm.m (constrainFrameRect): Always constrain when there is only
diff --git a/src/xdisp.c b/src/xdisp.c
index dcd14a1792a..07aad31abf1 100644
--- a/src/xdisp.c
+++ b/src/xdisp.c
@@ -16602,7 +16602,15 @@ find_last_unchanged_at_beg_row (struct window *w)
16602 continued. */ 16602 continued. */
16603 && !(MATRIX_ROW_END_CHARPOS (row) == first_changed_pos 16603 && !(MATRIX_ROW_END_CHARPOS (row) == first_changed_pos
16604 && (row->continued_p 16604 && (row->continued_p
16605 || row->exact_window_width_line_p))) 16605 || row->exact_window_width_line_p))
16606 /* If ROW->end is beyond ZV, then ROW->end is outdated and
16607 needs to be recomputed, so don't consider this row as
16608 unchanged. This happens when the last line was
16609 bidi-reordered and was killed immediately before this
16610 redisplay cycle. In that case, ROW->end stores the
16611 buffer position of the first visual-order character of
16612 the next row, which is now beyond ZV. */
16613 && CHARPOS (row->end.pos) <= ZV)
16606 row_found = row; 16614 row_found = row;
16607 16615
16608 /* Stop if last visible row. */ 16616 /* Stop if last visible row. */