diff options
| author | Eli Zaretskii | 2012-04-09 15:28:45 +0300 |
|---|---|---|
| committer | Eli Zaretskii | 2012-04-09 15:28:45 +0300 |
| commit | e53357c466196161fa36dc35cc215b050b7f88a8 (patch) | |
| tree | 50c6fb642ed6bc06661fc57084d6a683774cf27e /src | |
| parent | aff67c8241806055f8363f924874ab69fe70ed31 (diff) | |
| download | emacs-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/ChangeLog | 5 | ||||
| -rw-r--r-- | src/xdisp.c | 10 |
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 @@ | |||
| 1 | 2012-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 | |||
| 1 | 2012-04-09 Jan Djärv <jan.h.d@swipnet.se> | 6 | 2012-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. */ |