1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-04-24 23:31:33 -07:00

(Fwindow_end): If window_end_valid is nil, return nil.

This commit is contained in:
Richard M. Stallman 1994-08-09 04:29:53 +00:00
parent c638661f14
commit 7250968eba

View file

@ -493,7 +493,16 @@ DEFUN ("window-end", Fwindow_end, Swindow_end, 0, 1, 0,
"Return position at which display currently ends in WINDOW.\n\
This is updated by redisplay, when it runs to completion.\n\
Simply changing the buffer text or setting `window-start'\n\
does not update this value.")
does not update this value.\n\
\n\
This function returns nil if the position is not currently known.\n\
That happens when redisplay is preempted and doesn't finish.\n\
If in that case you want to compute where the end of the window would\n\
have been if redisplay had finished, do this:\n\
(save-excursion\n\
(goto-char (window-start window))\n\
(vertical-motion (1- (window-height window)) window)\n\
(point))")
(window)
Lisp_Object window;
{
@ -504,6 +513,13 @@ does not update this value.")
buf = w->buffer;
CHECK_BUFFER (buf, 0);
/* If we don't know the end position, return nil.
The user can compute it with vertical-motion if he wants to.
It would be nicer to do it automatically,
but that's so slow that it would probably bother people. */
if (NILP (w->window_end_valid))
return Qnil;
XSET (value, Lisp_Int,
BUF_Z (XBUFFER (buf)) - XFASTINT (w->window_end_pos));