diff options
author | Glenn Morris <rgm@gnu.org> | 2012-04-13 18:46:06 -0700 |
---|---|---|
committer | Glenn Morris <rgm@gnu.org> | 2012-04-13 18:46:06 -0700 |
commit | 35dc09a19c606f9e7a078df32d030451c7c90ba1 (patch) | |
tree | 8df2ade99ad8620568094d61bba9dd4ac8856c43 /src/xdisp.c | |
parent | 327732d994c98849c765659aa2164a7482b6beab (diff) | |
parent | ad3a2b411dc2b34f5d6fa434aee3ca56fa7a88e7 (diff) | |
download | emacs-35dc09a19c606f9e7a078df32d030451c7c90ba1.tar.gz |
Merge from emacs-24, up to 2012-04-10T02:06:19Z!larsi@gnus.org
Diffstat (limited to 'src/xdisp.c')
-rw-r--r-- | src/xdisp.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/src/xdisp.c b/src/xdisp.c index c6939a5dcf9..ea964f4dadc 100644 --- a/src/xdisp.c +++ b/src/xdisp.c @@ -16606,7 +16606,15 @@ find_last_unchanged_at_beg_row (struct window *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 killed text, which is now beyond ZV. */ + && CHARPOS (row->end.pos) <= ZV) row_found = row; /* Stop if last visible row. */ |