Mercurial > emacs
changeset 36231:9fa7c8e6a6d5
(Fwindow_end): Handle case that WINDOW's buffer is not
equal to the current buffer.
author | Gerd Moellmann <gerd@gnu.org> |
---|---|
date | Tue, 20 Feb 2001 16:00:18 +0000 |
parents | 56577cf3e384 |
children | ee15ecdb92e7 |
files | src/window.c |
diffstat | 1 files changed, 10 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/src/window.c Tue Feb 20 15:25:06 2001 +0000 +++ b/src/window.c Tue Feb 20 16:00:18 2001 +0000 @@ -912,6 +912,7 @@ { struct text_pos startp; struct it it; + struct buffer *old_buffer = NULL, *b = XBUFFER (buf); /* In case W->start is out of the range, use something reasonable. This situation occured when loading a file with @@ -927,10 +928,19 @@ /* Cannot use Fvertical_motion because that function doesn't cope with variable-height lines. */ + if (b != current_buffer) + { + old_buffer = current_buffer; + set_buffer_internal (b); + } + start_display (&it, w, startp); move_it_vertically (&it, window_box_height (w)); move_it_past_eol (&it); value = make_number (IT_CHARPOS (it)); + + if (old_buffer) + set_buffer_internal (old_buffer); } else XSETINT (value, BUF_Z (XBUFFER (buf)) - XFASTINT (w->window_end_pos));