@defmac save-selected-window forms@dots{}
This macro records the selected frame, as well as the selected window
of each frame, executes @var{forms} in sequence, then restores the
-earlier selected frame and windows It returns the value of the last
-form in @var{forms}.
+earlier selected frame and windows. It also saves and restores the
+current buffer. It returns the value of the last form in @var{forms}.
This macro does not save or restore anything about the sizes,
arrangement or contents of windows; therefore, if the @var{forms}
@defmac with-selected-window window forms@dots{}
This macro selects @var{window} (without changing the buffer list),
executes @var{forms} in sequence, then restores the previously
-selected window (unless that window is no longer alive). It is similar
-to @code{save-selected-window} except that it explicitly selects
-@var{window}, without altering the buffer list sequence.
+selected window and current buffer. It is just like
+@code{save-selected-window}, except that it explicitly selects
+@var{window}, also without altering the buffer list sequence.
@end defmac
@cindex finding windows
@defun window-list &optional frame minibuf window
This function returns a list of the windows on @var{frame}, starting
-with @var{window}. If @var{frame} is @code{nil} or omitted, the
-selected frame is used instead; if @var{window} is @code{nil} or
-omitted, the selected window is used instead.
-
-The value of @var{minibuf} determines if the minibuffer window will be
-included in the result list. If @var{minibuf} is @code{t}, the
-minibuffer window will be included, even if it isn't active. If
-@var{minibuf} is @code{nil} or omitted, the minibuffer window will
-only be included in the list if it is active. If @var{minibuf} is
-neither @code{nil} nor @code{t}, the minibuffer window is not
-included, whether or not it is active.
+with @var{window}. If @var{frame} is @code{nil} or omitted,
+@code{window-list} uses the selected frame instead; if @var{window} is
+@code{nil} or omitted, it uses the selected window.
+
+The value of @var{minibuf} determines if the minibuffer window is
+included in the result list. If @var{minibuf} is @code{t}, the result
+always includes the minibuffer window. If @var{minibuf} is @code{nil}
+or omitted, that includes the minibuffer window if it is active. If
+@var{minibuf} is neither @code{nil} nor @code{t}, the result never
+includes the minibuffer window.
@end defun
@node Buffers and Windows
@dfn{Vertical fractional scrolling} means shifting the image in the
window up or down by a specified multiple or fraction of a line.
-Starting in Emacs 21, each window has a @dfn{vertical scroll position},
+Each window has a @dfn{vertical scroll position},
which is a number, never less than zero. It specifies how far to raise
the contents of the window. Raising the window contents generally makes
all or part of some lines disappear off the top, and all or part of some
If this variable is non-@code{nil}, in any given buffer,
then the size of any window displaying the buffer remains fixed
unless you explicitly change it or Emacs has no other choice.
-(This feature is new in Emacs 21.)
If the value is @code{height}, then only the window's height is fixed;
if the value is @code{width}, then only the window's width is fixed.
There are three actions that can change this: scrolling the window,
switching buffers in the window, and changing the size of the window.
The first two actions run @code{window-scroll-functions}; the last runs
-@code{window-size-change-functions}. The paradigmatic use of these
-hooks is in the implementation of Lazy Lock mode; see @file{lazy-lock.el}.
+@code{window-size-change-functions}.
@defvar window-scroll-functions
This variable holds a list of functions that Emacs should call before