diff man/lispref/windows.texi @ 444:576fb035e263 r21-2-37

Import from CVS: tag r21-2-37
author cvs
date Mon, 13 Aug 2007 11:36:19 +0200
parents abe6d1db359e
children 33f0f28b945c
line wrap: on
line diff
--- a/man/lispref/windows.texi	Mon Aug 13 11:35:05 2007 +0200
+++ b/man/lispref/windows.texi	Mon Aug 13 11:36:19 2007 +0200
@@ -1,6 +1,6 @@
 @c -*-texinfo-*-
 @c This is part of the XEmacs Lisp Reference Manual.
-@c Copyright (C) 1990, 1991, 1992, 1993, 1994 Free Software Foundation, Inc. 
+@c Copyright (C) 1990, 1991, 1992, 1993, 1994 Free Software Foundation, Inc.
 @c See the file lispref.texi for copying conditions.
 @setfilename ../../info/windows.info
 @node Windows, Frames, Buffers, Top
@@ -22,7 +22,7 @@
 * Choosing Window::	   How to choose a window for displaying a buffer.
 * Window Point::           Each window has its own location of point.
 * Window Start::           The display-start position controls which text
-                             is on-screen in the window. 
+                             is on-screen in the window.
 * Vertical Scrolling::     Moving text up and down in the window.
 * Horizontal Scrolling::   Moving text sideways on the window.
 * Size of Window::         Accessing the size of a window.
@@ -66,31 +66,31 @@
 @item
 containing frame
 
-@item 
+@item
 window height
 
-@item 
+@item
 window width
 
-@item 
+@item
 window edges with respect to the frame or screen
 
-@item 
+@item
 the buffer it displays
 
-@item 
+@item
 position within the buffer at the upper left of the window
 
-@item 
+@item
 amount of horizontal scrolling, in columns
 
-@item 
+@item
 point
 
-@item 
+@item
 the mark
 
-@item 
+@item
 how recently the window was selected
 @end itemize
 
@@ -139,33 +139,15 @@
 The two ``halves'' of the split window initially display the same buffer
 previously visible in the window that was split.
 
-@defun one-window-p &optional no-mini all-frames
+@defun one-window-p &optional nomini which-frames which-devices
 This function returns non-@code{nil} if there is only one window.  The
-argument @var{no-mini}, if non-@code{nil}, means don't count the
+argument @var{nomini}, if non-@code{nil}, means don't count the
 minibuffer even if it is active; otherwise, the minibuffer window is
 included, if active, in the total number of windows which is compared
 against one.
 
-  The argument @var{all-frame} controls which set of windows are
-counted.
-@itemize @bullet
-@item
-If it is @code{nil} or omitted, then count only the selected frame, plus
-the minibuffer it uses (which may be on another frame).
-@item
-If it is @code{t}, then windows on all frames that currently exist
-(including invisible and iconified frames) are counted.
-@item
-If it is the symbol @code{visible}, then windows on all visible frames
-are counted.
-@item
-If it is the number 0, then windows on all visible and iconified frames
-are counted.
-@item
-If it is any other value, then precisely the windows in @var{window}'s
-frame are counted, excluding the minibuffer in use if it lies in
-some other frame.
-@end itemize
+The remaining arguments controls which set of windows are counted, as
+with @code{next-window}.
 @end defun
 
 @deffn Command split-window &optional window size horizontal
@@ -202,7 +184,7 @@
 
 @group
 ;; @r{Returns window created}
-(setq w2 (split-window w 15))   
+(setq w2 (split-window w 15))
      @result{} #<window 28 on windows.texi>
 @end group
 @group
@@ -220,8 +202,8 @@
 
 @smallexample
 @group
-         __________ 
-        |          |  line 0  
+         __________
+        |          |  line 0
         |    w     |
         |__________|
         |          |  line 15
@@ -259,8 +241,8 @@
 @smallexample
 @group
      column 35
-         __________ 
-        |   |      |  line 0  
+         __________
+        |   |      |  line 0
         | w |  w3  |
         |___|______|
         |          |  line 15
@@ -281,7 +263,7 @@
 This function splits the selected window into two windows, one above
 the other, leaving the selected window with @var{size} lines.
 
-This function is simply an interface to @code{split-windows}.
+This function is simply an interface to @code{split-window}.
 Here is the complete function definition for it:
 
 @smallexample
@@ -298,7 +280,7 @@
 This function splits the selected window into two windows
 side-by-side, leaving the selected window with @var{size} columns.
 
-This function is simply an interface to @code{split-windows}.  Here is
+This function is simply an interface to @code{split-window}.  Here is
 the complete definition for @code{split-window-horizontally} (except for
 part of the documentation string):
 
@@ -312,35 +294,6 @@
 @end smallexample
 @end deffn
 
-@defun one-window-p &optional no-mini all-frames
-This function returns non-@code{nil} if there is only one window.  The
-argument @var{no-mini}, if non-@code{nil}, means don't count the
-minibuffer even if it is active; otherwise, the minibuffer window is
-included, if active, in the total number of windows, which is compared
-against one.
-
-The argument @var{all-frames} specifies which frames to consider.  Here
-are the possible values and their meanings:
-
-@table @asis
-@item @code{nil}
-Count the windows in the selected frame, plus the minibuffer used
-by that frame even if it lies in some other frame.
-
-@item @code{t}
-Count all windows in all existing frames.
-
-@item @code{visible}
-Count all windows in all visible frames.
-
-@item 0
-Count all windows in all visible or iconified frames.
-
-@item anything else
-Count precisely the windows in the selected frame, and no others.
-@end table
-@end defun
-
 @node Deleting Windows
 @section Deleting Windows
 @cindex deleting windows
@@ -366,15 +319,21 @@
 using a deleted window as if it were live.
 @end defun
 
-@deffn Command delete-window &optional window
-This function removes @var{window} from the display.  If @var{window}
-is omitted, then the selected window is deleted.  An error is signaled
-if there is only one window when @code{delete-window} is called.
+@deffn Command delete-window &optional window force
+This function removes @var{window} from the display.  If @var{window} is
+omitted, then the selected window is deleted. If window is the only one
+on its frame, the frame is deleted as well.
+
+Normally, you cannot delete the last non-minibuffer-only frame (you must
+use @code{save-buffers-kill-emacs} or @code{kill-emacs}); an error is
+signaled instead.  However, if optional second argument @var{force} is
+non-@code{nil}, you can delete the last frame. (This will automatically
+call @code{save-buffers-kill-emacs}.)
 
 This function returns @code{nil}.
 
-When @code{delete-window} is called interactively, @var{window}
-defaults to the selected window.
+When @code{delete-window} is called interactively, the selected window
+is deleted.
 @end deffn
 
 @deffn Command delete-other-windows &optional window
@@ -385,7 +344,7 @@
 The result is @code{nil}.
 @end deffn
 
-@deffn Command delete-windows-on buffer &optional frame
+@deffn Command delete-windows-on buffer &optional which-frames which-devices
 This function deletes all windows showing @var{buffer}.  If there are
 no windows showing @var{buffer}, it does nothing.
 
@@ -397,20 +356,52 @@
 single window showing another buffer chosen with @code{other-buffer}.
 @xref{The Buffer List}.
 
-The argument @var{frame} controls which frames to operate on:
+The argument @var{which-frames} controls which frames to operate on:
+
+@table @asis
+@item @code{nil}
+Delete all windows showing @var{buffer} in any frame.
+
+@item @code{t}
+Delete only windows showing @var{buffer} in the selected frame.
+
+@item @code{visible}
+Delete all windows showing @var{buffer} in any visible frame.
+
+@item @code{0}
+Delete all windows showing @var{buffer} in any visible frame.
+
+@item @var{frame}
+If it is a frame, delete all windows showing @var{buffer} in that frame.
+@end table
+
+@strong{Warning:} This is similar to, but not identical to, the meaning
+of the @var{which-frames} argument to @code{next-window}; the meanings
+of @code{nil} and @code{t} are reversed.
 
-@itemize @bullet
-@item
-If it is @code{nil}, operate on the selected frame.
-@item
-If it is @code{t}, operate on all frames.
-@item
-If it is @code{visible}, operate on all visible frames.
-@item 0
-If it is 0, operate on all visible or iconified frames.
-@item
-If it is a frame, operate on that frame.
-@end itemize
+The optional argument @var{which-devices} further clarifies on which
+devices to search for frames as specified by @var{which-frames}.
+This value is only meaningful if @var{which-frames} is not @code{t}.
+
+@table @asis
+@item @code{nil}
+Consider all devices on the selected console.
+
+@item @var{device}
+Consider only the one device @var{device}.
+
+@item @var{console}
+Consider all devices on @var{console}.
+
+@item @var{device-type}
+Consider all devices with device type @var{device-type}.
+
+@item @code{window-system}
+Consider all devices on window system consoles.
+
+@item anything else
+Consider all devices without restriction.
+@end table
 
 This function always returns @code{nil}.
 @end deffn
@@ -438,7 +429,7 @@
 
 If optional argument @var{norecord} is non-@code{nil} then the global
 and per-frame buffer orderings are not modified, as by the function
-@code{record-buffer}. 
+@code{record-buffer}.
 
 The return value is @var{window}.
 
@@ -451,19 +442,18 @@
 @end example
 @end defun
 
-@defmac save-selected-window forms@dots{}
-This macro records the selected window, executes @var{forms}
-in sequence, then restores the earlier selected window.
-It does not save or restore anything about the sizes, arrangement
-or contents of windows; therefore, if the @var{forms} change them,
-the changes are permanent.
-@end defmac
+@defspec save-selected-window forms@dots{}
+This special form records the selected window, executes @var{forms} in
+sequence, then restores the earlier selected window.  It does not save
+or restore anything about the sizes, arrangement or contents of windows;
+therefore, if the @var{forms} change them, the changes are permanent.
+@end defspec
 
 @cindex finding windows
   The following functions choose one of the windows on the screen,
 offering various criteria for the choice.
 
-@defun get-lru-window &optional frame
+@defun get-lru-window &optional which-frames which-devices
 This function returns the window least recently ``used'' (that is,
 selected).  The selected window is always the most recently used window.
 
@@ -471,23 +461,59 @@
 only window.  A newly created window becomes the least recently used
 window until it is selected.  A minibuffer window is never a candidate.
 
-The argument @var{frame} controls which windows are considered.
+By default, only the windows in the selected frame are considered.
+The optional argument @var{which-frames} changes this behavior.
+Here are the possible values and their meanings:
+
+@table @asis
+@item @code{nil}
+Consider all the windows in the selected windows's frame, plus the
+minibuffer used by that frame even if it lies in some other frame.
+
+@item @code{t}
+Consider all windows in all existing frames.
+
+@item @code{visible}
+Consider all windows in all visible frames.  (To get useful results, you
+must ensure @var{window} is in a visible frame.)
+
+@item @code{0}
+Consider all windows in all visible or iconified frames.
+
+@item @var{frame}
+Consider all windows on frame @var{frame}.
 
-@itemize @bullet
-@item
-If it is @code{nil}, consider windows on the selected frame.
-@item
-If it is @code{t}, consider windows on all frames.
-@item
-If it is @code{visible}, consider windows on all visible frames.
-@item
-If it is 0, consider windows on all visible or iconified frames.
-@item
-If it is a frame, consider windows on that frame.
-@end itemize
+@item anything else
+Consider precisely the windows in the selected window's frame, and no others.
+@end table
+
+The optional argument @var{which-devices} further clarifies on which
+devices to search for frames as specified by @var{which-frames}.
+This value is only meaningful if @var{which-frames} is non-@code{nil}.
+
+@table @asis
+@item @code{nil}
+Consider all devices on the selected console.
+
+@item @var{device}
+Consider only the one device @var{device}.
+
+@item @var{console}
+Consider all devices on @var{console}.
+
+@item @var{device-type}
+Consider all devices with device type @var{device-type}.
+
+@item @code{window-system}
+Consider all devices on window system consoles.
+
+@item anything else
+Consider all devices without restriction.
+@end table
+
 @end defun
 
-@defun get-largest-window &optional frame
+@defun get-largest-window &optional which-frames which-devices
 This function returns the window with the largest area (height times
 width).  If there are no side-by-side windows, then this is the window
 with the most lines.  A minibuffer window is never a candidate.
@@ -496,15 +522,15 @@
 the window that is first in the cyclic ordering of windows (see
 following section), starting from the selected window.
 
-The argument @var{frame} controls which set of windows are
-considered.  See @code{get-lru-window}, above.
+The remaining arguments control which set of windows are considered.
+See @code{next-window}, above.
 @end defun
 
 @node Cyclic Window Ordering
 @section Cyclic Ordering of Windows
 @cindex cyclic ordering of windows
 @cindex ordering of windows, cyclic
-@cindex window ordering, cyclic 
+@cindex window ordering, cyclic
 
   When you use the command @kbd{C-x o} (@code{other-window}) to select
 the next window, it moves through all the windows on the screen in a
@@ -523,7 +549,7 @@
 In general, within each set of siblings at any level in the window tree,
 the order is left to right, or top to bottom.
 
-@defun next-window &optional window minibuf all-frames
+@defun next-window &optional window minibuf which-frames which-devices
 @cindex minibuffer window
 This function returns the window following @var{window} in the cyclic
 ordering of windows.  This is the window that @kbd{C-x o} would select
@@ -543,8 +569,9 @@
 If @var{minibuf} is neither @code{t} nor @code{nil}, then the minibuffer
 window is not included even if it is active.
 
-The argument @var{all-frames} specifies which frames to consider.  Here
-are the possible values and their meanings:
+By default, only the windows in the selected frame are considered.
+The optional argument @var{which-frames} changes this behavior.
+Here are the possible values and their meanings:
 
 @table @asis
 @item @code{nil}
@@ -558,14 +585,47 @@
 Consider all windows in all visible frames.  (To get useful results, you
 must ensure @var{window} is in a visible frame.)
 
-@item 0
+@item @code{0}
 Consider all windows in all visible or iconified frames.
 
+@item @var{frame}
+Consider all windows on frame @var{frame}.
+
 @item anything else
 Consider precisely the windows in @var{window}'s frame, and no others.
 @end table
 
-This example assumes there are two windows, both displaying the 
+The optional argument @var{which-devices} further clarifies on which
+devices to search for frames as specified by @var{which-frames}.
+This value is only meaningful if @var{which-frames} is non-@code{nil}.
+
+@table @asis
+@item @code{nil}
+Consider all devices on the selected console.
+
+@item @var{device}
+Consider only the one device @var{device}.
+
+@item @var{console}
+Consider all devices on @var{console}.
+
+@item @var{device-type}
+Consider all devices with device type @var{device-type}.
+
+@item @code{window-system}
+Consider all devices on window system consoles.
+
+@item anything else
+Consider all devices without restriction.
+@end table
+
+If you use consistent values for @var{minibuf}, @var{which-frames}, and
+@var{which-devices}, you can use @code{next-window} to iterate through the
+entire cycle of acceptable windows, eventually ending up back at the
+window you started with.  @code{previous-window} traverses the same
+cycle, in the reverse order.
+
+This example assumes there are two windows, both displaying the
 buffer @samp{windows.texi}:
 
 @example
@@ -584,48 +644,29 @@
 @end example
 @end defun
 
-@defun previous-window &optional window minibuf all-frames
+@defun previous-window &optional window minibuf which-frames which-devices
 This function returns the window preceding @var{window} in the cyclic
 ordering of windows.  The other arguments specify which windows to
 include in the cycle, as in @code{next-window}.
 @end defun
 
-@deffn Command other-window count &optional frame
-This function selects the @var{count}th following window in the cyclic
-order.  If count is negative, then it selects the @minus{}@var{count}th
+@deffn Command other-window count &optional which-frames which-devices
+This function selects the @var{count}th following window in the cyclic order.
+If @var{count} is negative, then it selects the @minus{}@var{count}th
 preceding window.  It returns @code{nil}.
 
 In an interactive call, @var{count} is the numeric prefix argument.
 
-The argument @var{frame} controls which set of windows are considered.
-@itemize @bullet
-@item
-If it is @code{nil} or omitted, then windows on the selected frame are
-considered.
-@item
-If it is a frame, then windows on that frame are considered.
-@item
-If it is @code{t}, then windows on all frames that currently exist
-(including invisible and iconified frames) are considered.
-@item
-If it is the symbol @code{visible}, then windows on all visible frames
-are considered.
-@item
-If it is the number 0, then windows on all visible and iconified frames
-are considered.
-@item
-If it is any other value, then the behavior is undefined.
-@end itemize
+The other arguments specify which windows to include in the cycle, as in
+@code{next-window}.
 @end deffn
 
-@c Emacs 19 feature
-@defun walk-windows proc &optional minibuf all-frames
-This function cycles through all windows, calling @code{proc}
+@defun walk-windows function &optional minibuf which-frames which-devices
+This function cycles through all windows, calling @code{function}
 once for each window with the window as its sole argument.
 
-The optional arguments @var{minibuf} and @var{all-frames} specify the
-set of windows to include in the scan.  See @code{next-window}, above,
-for details.
+The other arguments specify which windows to cycle through, as in
+@code{next-window}.
 @end defun
 
 @node Buffers and Windows
@@ -647,9 +688,14 @@
 employ heuristics in choosing or creating a window; use these functions
 when you need complete control.
 
-@defun set-window-buffer window buffer-or-name
+@defun set-window-buffer window buffer-or-name &optional norecord
 This function makes @var{window} display @var{buffer-or-name} as its
-contents.  It returns @code{nil}.
+contents.  @var{buffer-or-name} can be a buffer or a buffer name.
+
+With non-@code{nil} optional argument @var{norecord}, do not modify the
+global or per-frame buffer ordering.
+
+This function returns @code{nil}.
 
 @example
 @group
@@ -672,27 +718,15 @@
 @end example
 @end defun
 
-@defun get-buffer-window buffer-or-name &optional frame
+@defun get-buffer-window buffer-or-name &optional which-frames which-devices
 This function returns a window currently displaying
 @var{buffer-or-name}, or @code{nil} if there is none.  If there are
 several such windows, then the function returns the first one in the
 cyclic ordering of windows, starting from the selected window.
 @xref{Cyclic Window Ordering}.
 
-The argument @var{all-frames} controls which windows to consider.
-
-@itemize @bullet
-@item
-If it is @code{nil}, consider windows on the selected frame.
-@item
-If it is @code{t}, consider windows on all frames.
-@item
-If it is @code{visible}, consider windows on all visible frames.
-@item
-If it is 0, consider windows on all visible or iconified frames.
-@item
-If it is a frame, consider windows on that frame.
-@end itemize
+The remaining arguments control which windows to consider.  They have
+the same meaning as for @code{next-window}.
 @end defun
 
 @node Displaying Buffers
@@ -801,13 +835,16 @@
 Functions}.
 @end defun
 
-@deffn Command replace-buffer-in-windows buffer
+@deffn Command replace-buffer-in-windows buffer &optional which-frames which-devices
 This function replaces @var{buffer} with some other buffer in all
 windows displaying it.  The other buffer used is chosen with
 @code{other-buffer}.  In the usual applications of this function, you
 don't care which other buffer is used; you just want to make sure that
 @var{buffer} is no longer displayed.
 
+The optional arguments @var{which-frames} and @var{which-devices} have
+the same meaning as with @code{delete-windows-on}.
+
 This function returns @code{nil}.
 @end deffn
 
@@ -819,12 +856,14 @@
 functions and commands use this subroutine.  Here we describe how to use
 @code{display-buffer} and how to customize it.
 
-@deffn Command display-buffer buffer-or-name &optional not-this-window
+@deffn Command display-buffer buffer-or-name &optional not-this-window override-frame
 This command makes @var{buffer-or-name} appear in some window, like
 @code{pop-to-buffer}, but it does not select that window and does not
 make the buffer current.  The identity of the selected window is
 unaltered by this function.
 
+@var{buffer-or-name} can be a buffer or the name of one.
+
 If @var{not-this-window} is non-@code{nil}, it means to display the
 specified buffer in a window other than the selected one, even if it is
 already on display in the selected window.  This can cause the buffer to
@@ -832,8 +871,10 @@
 already being displayed in any window, that is good enough, so this
 function does nothing.
 
-@code{display-buffer} returns the window chosen to display
-@var{buffer-or-name}.
+If @var{override-frame} is non-@code{nil}, display on that frame instead
+of the current frame (or the dedicated frame).
+
+@code{display-buffer} returns the window chosen to display @var{buffer-or-name}.
 
 Precisely how @code{display-buffer} finds or creates a window depends on
 the variables described below.
@@ -1039,13 +1080,14 @@
 when the user switches to another buffer, the cursor jumps to the
 position of point in that buffer.
 
-@defun window-point window
+@defun window-point &optional window
 This function returns the current position of point in @var{window}.
 For a non-selected window, this is the value point would have (in that
 window's buffer) if that window were selected.
 
 When @var{window} is the selected window and its buffer is also the
-current buffer, the value returned is the same as point in that buffer.
+current buffer, the value returned is the same as the value of point in
+that buffer.
 
 Strictly speaking, it would be more correct to return the
 ``top-level'' value of point, outside of any @code{save-excursion}
@@ -1071,7 +1113,7 @@
 @cindex window top line
 This function returns the display-start position of window
 @var{window}.  If @var{window} is @code{nil}, the selected window is
-used.  For example, 
+used.  For example,
 
 @example
 @group
@@ -1088,19 +1130,25 @@
 @ref{Text Lines}.
 @end defun
 
-@defun window-end &optional window
+@defun window-end &optional window guarantee
 This function returns the position of the end of the display in window
 @var{window}.  If @var{window} is @code{nil}, the selected window is
 used.
 
-Simply changing the buffer text or moving point does not update the
-value that @code{window-end} returns.  The value is updated only when
-Emacs redisplays and redisplay actually finishes.
+Simply changing the buffer text or setting @code{window-start} does not
+update the value that @code{window-end} returns.  The value is updated
+only when Emacs redisplays and redisplay actually finishes.
 
 If the last redisplay of @var{window} was preempted, and did not finish,
 Emacs does not know the position of the end of display in that window.
 In that case, this function returns a value that is not correct.  In a
 future version, @code{window-end} will return @code{nil} in that case.
+
+If optional arg @var{guarantee} is non-@code{nil}, the return value is
+guaranteed to be the same as @code{window-end} would return at the end
+of the next full redisplay assuming nothing else changes in the
+meantime.  This function is potentially much slower with this flag set.
+
 @ignore
 in that case, this function returns @code{nil}.  You can compute where
 the end of the window @emph{would} have been, if redisplay had finished,
@@ -1229,33 +1277,33 @@
 unpredictable results if the current buffer is different from the buffer
 that is displayed in the selected window.  @xref{Current Buffer}.
 
-@deffn Command scroll-up &optional count
+@deffn Command scroll-up &optional lines
 This function scrolls the text in the selected window upward
-@var{count} lines.  If @var{count} is negative, scrolling is actually
+@var{lines} lines.  If @var{lines} is negative, scrolling is actually
 downward.
 
-If @var{count} is @code{nil} (or omitted), then the length of scroll
+If @var{lines} is @code{nil} (or omitted), then the length of scroll
 is @code{next-screen-context-lines} lines less than the usable height of
 the window (not counting its modeline).
 
 @code{scroll-up} returns @code{nil}.
 @end deffn
 
-@deffn Command scroll-down &optional count
+@deffn Command scroll-down &optional lines
 This function scrolls the text in the selected window downward
-@var{count} lines.  If @var{count} is negative, scrolling is actually
+@var{lines} lines.  If @var{lines} is negative, scrolling is actually
 upward.
 
-If @var{count} is omitted or @code{nil}, then the length of the scroll
+If @var{lines} is omitted or @code{nil}, then the length of the scroll
 is @code{next-screen-context-lines} lines less than the usable height of
 the window (not counting its mode line).
 
 @code{scroll-down} returns @code{nil}.
 @end deffn
 
-@deffn Command scroll-other-window &optional count
-This function scrolls the text in another window upward @var{count}
-lines.  Negative values of @var{count}, or @code{nil}, are handled
+@deffn Command scroll-other-window &optional lines
+This function scrolls the text in another window upward @var{lines}
+lines.  Negative values of @var{lines}, or @code{nil}, are handled
 as in @code{scroll-up}.
 
 You can specify a buffer to scroll with the variable
@@ -1305,26 +1353,27 @@
 @code{2}.
 @end defopt
 
-@deffn Command recenter &optional count
+@deffn Command recenter &optional location window
 @cindex centering point
-This function scrolls the selected window to put the text where point
-is located at a specified vertical position within the window.
+This function scrolls @var{window} (which defaults to the selected
+window) to put the text where point is located at a specified vertical
+position within the window.
 
-If @var{count} is a nonnegative number, it puts the line containing
-point @var{count} lines down from the top of the window.  If @var{count}
+If @var{location} is a nonnegative number, it puts the line containing
+point @var{location} lines down from the top of the window.  If @var{location}
 is a negative number, then it counts upward from the bottom of the
 window, so that @minus{}1 stands for the last usable line in the window.
-If @var{count} is a non-@code{nil} list, then it stands for the line in
+If @var{location} is a non-@code{nil} list, then it stands for the line in
 the middle of the window.
 
-If @var{count} is @code{nil}, @code{recenter} puts the line containing
+If @var{location} is @code{nil}, @code{recenter} puts the line containing
 point in the middle of the window, then clears and redisplays the entire
 selected frame.
 
-When @code{recenter} is called interactively, @var{count} is the raw
+When @code{recenter} is called interactively, @var{location} is the raw
 prefix argument.  Thus, typing @kbd{C-u} as the prefix sets the
-@var{count} to a non-@code{nil} list, while typing @kbd{C-u 4} sets
-@var{count} to 4, which positions the current line four lines from the
+@var{location} to a non-@code{nil} list, while typing @kbd{C-u 4} sets
+@var{location} to 4, which positions the current line four lines from the
 top.
 
 With an argument of zero, @code{recenter} positions the current line at
@@ -1336,10 +1385,10 @@
 (defun line-to-top-of-window ()
   "Scroll current line to top of window.
 Replaces three keystroke sequence C-u 0 C-l."
-  (interactive) 
+  (interactive)
   (recenter 0))
 
-(global-set-key [kp-multiply] 'line-to-top-of-window)  
+(global-set-key [kp-multiply] 'line-to-top-of-window)
 @end group
 @end example
 @end deffn
@@ -1368,14 +1417,14 @@
 to how far left you can scroll, but eventually all the text will
 disappear off the left edge.
 
-@deffn Command scroll-left count
+@deffn Command scroll-left &optional count
 This function scrolls the selected window @var{count} columns to the
 left (or to the right if @var{count} is negative).  The return value is
 the total amount of leftward horizontal scrolling in effect after the
 change---just like the value returned by @code{window-hscroll} (below).
 @end deffn
 
-@deffn Command scroll-right count
+@deffn Command scroll-right &optional count
 This function scrolls the selected window @var{count} columns to the
 right (or to the left if @var{count} is negative).  The return value is
 the total amount of leftward horizontal scrolling in effect after the
@@ -1433,9 +1482,9 @@
 @example
 @group
 (defun hscroll-on-screen (window position)
-  (save-excursion 
+  (save-excursion
     (goto-char position)
-    (and 
+    (and
      (>= (- (current-column) (window-hscroll window)) 0)
      (< (- (current-column) (window-hscroll window))
         (window-width window)))))
@@ -1590,7 +1639,7 @@
 This function returns the height in pixels of the text displayed in
 @var{window}, which defaults to the selected window.  Unlike
 @code{window-text-area-pixel-height}, any blank space below the
-end of the buffer is not included.  If optional argument @var{noclipped} 
+end of the buffer is not included.  If optional argument @var{noclipped}
 is non-@code{nil}, any space occupied by clipped lines will not be
 included.
 @end defun
@@ -1611,20 +1660,20 @@
 
   The order of the list is @code{(@var{left} @var{top} @var{right}
 @var{bottom})}, all elements relative to 0, 0 at the top left corner of
-the frame.  The element @var{right} of the value is one more than the
-rightmost pixel used by @var{window} (including any left margin, right
-margin, or vertical scrollbar displayed alongside it), and
+@var{window}'s frame.  The element @var{right} of the value is one more
+than the rightmost pixel used by @var{window} (including any left
+margin, right margin, or vertical scrollbar displayed alongside it), and
 @var{bottom} is one more than the bottommost pixel used by @var{window}
-(including any modeline or horizontal scrollbar displayed above
-or below it).  The frame area does not include any frame menubars or
-toolbars that may be displayed; thus, for example, if there is only
-one window on the frame, the values for @var{left} and @var{top} will
-always be 0.
+(including any modeline or horizontal scrollbar displayed above or below
+it).  The frame area does not include any frame menubars, toolbars, or
+gutters that may be displayed; thus, for example, if there is only one
+window on the frame, the values for @var{left} and @var{top} will always
+be 0.
 
   If @var{window} is at the upper left corner of its frame, @var{right}
 and @var{bottom} are the same as the values returned by
 @code{(window-pixel-width)} and @code{(window-pixel-height)}
-respectively, and @var{top} and @var{bottom} are zero.
+respectively, and @var{left} and @var{top} are zero.
 @end defun
 
   There is no longer a function @code{window-edges} because it does not
@@ -1660,15 +1709,15 @@
 window size.  XEmacs does not permit overlapping windows or gaps between
 windows, so resizing one window affects other windows.
 
-@deffn Command enlarge-window size &optional horizontal window
-This function makes the selected window @var{size} lines taller,
+@deffn Command enlarge-window count &optional horizontal window
+This function makes the selected window @var{count} lines taller,
 stealing lines from neighboring windows.  It takes the lines from one
 window at a time until that window is used up, then takes from another.
 If a window from which lines are stolen shrinks below
 @code{window-min-height} lines, that window disappears.
 
 If @var{horizontal} is non-@code{nil}, this function makes
-@var{window} wider by @var{size} columns, stealing columns instead of
+@var{window} wider by @var{count} columns, stealing columns instead of
 lines.  If a window from which columns are stolen shrinks below
 @code{window-min-width} columns, that window disappears.
 
@@ -1676,15 +1725,15 @@
 function makes the window occupy the entire height (or width) of the
 frame.
 
-If @var{size} is negative, this function shrinks the window by
-@minus{}@var{size} lines or columns.  If that makes the window smaller
+If @var{count} is negative, this function shrinks the window by
+@minus{}@var{count} lines or columns.  If that makes the window smaller
 than the minimum size (@code{window-min-height} and
 @code{window-min-width}), @code{enlarge-window} deletes the window.
 
 If @var{window} is non-@code{nil}, it specifies a window to change
 instead of the selected window.
 
-@code{enlarge-window} returns @code{nil}.  
+@code{enlarge-window} returns @code{nil}.
 @end deffn
 
 @deffn Command enlarge-window-horizontally columns
@@ -1700,20 +1749,20 @@
 @end deffn
 
 @deffn Command enlarge-window-pixels count &optional side window
-This function makes the selected window @var{count} pixels larger.  When
-called from Lisp, optional second argument @var{side} non-@code{nil}
-means to grow sideways @var{count} pixels, and optional third argument
-@var{window} specifies the window to change instead of the selected
-window.
+This function makes the selected window @var{count} pixels larger.  
+When called from Lisp, optional second argument @var{side}
+non-@code{nil} means to grow sideways @var{count} pixels, and optional
+third argument @var{window} specifies the window to change instead of
+the selected window.
 @end deffn
 
-@deffn Command shrink-window size &optional horizontal window
+@deffn Command shrink-window count &optional horizontal window
 This function is like @code{enlarge-window} but negates the argument
-@var{size}, making the selected window smaller by giving lines (or
+@var{count}, making the selected window smaller by giving lines (or
 columns) to the other windows.  If the window shrinks below
 @code{window-min-height} or @code{window-min-width}, then it disappears.
 
-If @var{size} is negative, the window is enlarged by @minus{}@var{size}
+If @var{count} is negative, the window is enlarged by @minus{}@var{count}
 lines or columns.
 
 If @var{window} is non-@code{nil}, it specifies a window to change
@@ -1800,13 +1849,15 @@
 configuration instead of a window configuration.  @xref{Frame
 Configurations}.
 
-@defun current-window-configuration
-This function returns a new object representing XEmacs's current window
-configuration, namely the number of windows, their sizes and current
-buffers, which window is the selected window, and for each window the
-displayed buffer, the display-start position, and the positions of point
-and the mark.  An exception is made for point in the current buffer,
-whose value is not saved.
+@defun current-window-configuration &optional frame
+This function returns a new object representing the current current
+window configuration of @var{frame}, namely the number of windows, their
+sizes and current buffers, which window is the selected window, and for
+each window the displayed buffer, the display-start position, and the
+positions of point and the mark.  An exception is made for point in the
+current buffer, whose value is not saved.
+
+@var{frame} defaults to the selected frame.
 @end defun
 
 @defun set-window-configuration configuration