+@defun compare-window-configurations config1 config2
+This function compares two window configurations as regards the
+structure of windows, but ignores the values of point and mark and the
+saved scrolling positions---it can return @code{t} even if those
+aspects differ.
+
+The function @code{equal} can also compare two window configurations; it
+regards configurations as unequal if they differ in any respect, even a
+saved point or mark.
+@end defun
+
+@defun window-configuration-frame config
+This function returns the frame for which the window configuration
+@var{config} was made.
+@end defun
+
+ Other primitives to look inside of window configurations would make
+sense, but are not implemented because we did not need them. See the
+file @file{winner.el} for some more operations on windows
+configurations.
+
+@node Window Hooks
+@section Hooks for Window Scrolling and Changes
+
+This section describes how a Lisp program can take action whenever a
+window displays a different part of its buffer or a different buffer.
+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}.
+
+@defvar window-scroll-functions
+This variable holds a list of functions that Emacs should call before
+redisplaying a window with scrolling. It is not a normal hook, because
+each function is called with two arguments: the window, and its new
+display-start position.
+
+Displaying a different buffer in the window also runs these functions.
+
+These functions must be careful in using @code{window-end}
+(@pxref{Window Start}); if you need an up-to-date value, you must use
+the @var{update} argument to ensure you get it.
+@end defvar
+
+@defvar window-size-change-functions
+This variable holds a list of functions to be called if the size of any
+window changes for any reason. The functions are called just once per
+redisplay, and just once for each frame on which size changes have
+occurred.
+
+Each function receives the frame as its sole argument. There is no
+direct way to find out which windows on that frame have changed size, or
+precisely how. However, if a size-change function records, at each
+call, the existing windows and their sizes, it can also compare the
+present sizes and the previous sizes.
+
+Creating or deleting windows counts as a size change, and therefore
+causes these functions to be called. Changing the frame size also
+counts, because it changes the sizes of the existing windows.
+
+It is not a good idea to use @code{save-window-excursion} (@pxref{Window
+Configurations}) in these functions, because that always counts as a
+size change, and it would cause these functions to be called over and
+over. In most cases, @code{save-selected-window} (@pxref{Selecting
+Windows}) is what you need here.
+@end defvar
+
+@defvar redisplay-end-trigger-functions
+This abnormal hook is run whenever redisplay in a window uses text that
+extends past a specified end trigger position. You set the end trigger
+position with the function @code{set-window-redisplay-end-trigger}. The
+functions are called with two arguments: the window, and the end trigger
+position. Storing @code{nil} for the end trigger position turns off the
+feature, and the trigger value is automatically reset to @code{nil} just
+after the hook is run.
+@end defvar
+
+@defun set-window-redisplay-end-trigger window position
+This function sets @var{window}'s end trigger position at
+@var{position}.
+@end defun
+
+@defun window-redisplay-end-trigger &optional window
+This function returns @var{window}'s current end trigger position.
+If @var{window} is @code{nil} or omitted, it uses the selected window.
+@end defun
+
+@defvar window-configuration-change-hook
+A normal hook that is run every time you change the window configuration
+of an existing frame. This includes splitting or deleting windows,
+changing the sizes of windows, or displaying a different buffer in a
+window. The frame whose window configuration has changed is the
+selected frame when this hook runs.
+@end defvar
+
+@ignore
+ arch-tag: 3f6c36e8-df49-4986-b757-417feed88be3
+@end ignore