Commit 05b621a6 authored by Chong Yidong's avatar Chong Yidong

More Emacs 24.3 documentation updates.

* doc/emacs/building.texi (Compilation): Document compilation-always-kill.

* doc/emacs/files.texi (Misc File Ops): Symbolic links on Windows only work
on Vista and later.

* doc/emacs/frames.texi (Mouse Avoidance): Mention new variable
mouse-avoidance-banish-position.

* doc/emacs/mule.texi (Recognize Coding): Remove an unreferenced vindex.

* doc/emacs/package.texi (Package Menu): Document the "new" status.

* doc/emacs/programs.texi (Which Function): Which Function mode now works in
all major modes by default.

* doc/emacs/search.texi (Symbol Search): New node.

* doc/emacs/windows.texi (Window Choice): Don't refer to the obsolete
special-display feature.

* commands.texi (Event Input Misc): Remove last-input-char.
(Command Loop Info): Remove last-command-char.

* display.texi (Fringe Bitmaps): Add exclamation-mark bitmap.

* frames.texi (Initial Parameters): Don't mention the obsolete
special-display feature.

* hooks.texi (Standard Hooks): Remove obsolete hooks.

* markers.texi (Information from Markers): Remove obsolete
function buffer-has-markers-at.

* minibuf.texi (High-Level Completion): Don't mention removed
function iswitchb-read-buffer.

* text.texi (Yanking): Document yank-handled-properties.

* windows.texi (Choosing Window): Don't mention the obsolete
special display feature.
(Choosing Window Options): Remove obsolete special-display
variables, and the functions special-display-p and
special-display-popup-frame.

* subr.el (insert-buffer-substring-as-yank): Doc fix.
parent 55f197b2
2012-10-27 Chong Yidong <cyd@gnu.org>
* frames.texi (Mouse Avoidance): Mention new variable
mouse-avoidance-banish-position.
* programs.texi (Which Function): Which Function mode now works in
all major modes by default.
* mule.texi (Recognize Coding): Remove an unreferenced vindex.
* files.texi (Misc File Ops): Symbolic links on Windows only work
on Vista and later.
* building.texi (Compilation): Document compilation-always-kill.
* search.texi (Symbol Search): New node.
* package.texi (Package Menu): Document the "new" status.
* windows.texi (Window Choice): Don't refer to the obsolete
special-display feature.
2012-10-24 Chong Yidong <cyd@gnu.org>
* mule.texi (Text Coding): set-buffer-file-coding-system can now
......
......@@ -108,11 +108,14 @@ directory, which is the directory in which the previous compilation
was started.
@findex kill-compilation
@vindex compilation-always-kill
Starting a new compilation also kills any compilation already
running in @file{*compilation*}, as the buffer can only handle one
compilation at any time. However, @kbd{M-x compile} asks for
confirmation before actually killing a compilation that is running.
You can also kill the compilation process with @kbd{M-x
confirmation before actually killing a compilation that is running; to
always automatically kill the compilation without asking, change the
variable @code{compilation-always-kill} to @code{t}. You can also
kill a compilation process with the command @kbd{M-x
kill-compilation}.
To run two compilations at once, start the first one, then rename
......
......@@ -373,6 +373,7 @@ Searching and Replacement
* Incremental Search:: Search happens as you type the string.
* Nonincremental Search:: Specify entire string and then search.
* Word Search:: Search for sequence of words.
* Symbol Search:: Search for a source code symbol.
* Regexp Search:: Search for match for a regexp.
* Regexps:: Syntax of regular expressions.
* Regexp Backslash:: Regular expression constructs starting with `\'.
......
......@@ -1564,9 +1564,8 @@ open file @var{linkname} will refer to whatever file is named
@var{target} at the time the opening is done, or will get an error if
the name @var{target} is nonexistent at that time. This command does
not expand the argument @var{target}, so that it allows you to specify
a relative name as the target of the link. Not all systems support
symbolic links; on systems that don't support them, this command is
not defined.
a relative name as the target of the link. On MS-Windows, this
command works only on MS Windows Vista and later.
@kindex C-x i
@findex insert-file
......
......@@ -1092,17 +1092,19 @@ to various values to move the mouse in several ways:
@table @code
@item banish
Move the mouse to the upper-right corner on any key-press;
Move the pointer to a corner of the frame on any key-press. You can
customize the variable @code{mouse-avoidance-banish-position} to
specify where the pointer goes when it is banished.
@item exile
Move the mouse to the corner only if the cursor gets too close,
and allow it to return once the cursor is out of the way;
Banish the pointer only if the cursor gets too close, and allow it to
return once the cursor is out of the way.
@item jump
If the cursor gets too close to the mouse, displace the mouse
a random distance & direction;
If the cursor gets too close to the pointer, displace the pointer by a
random distance and direction.
@item animate
As @code{jump}, but shows steps along the way for illusion of motion;
As @code{jump}, but shows steps along the way for illusion of motion.
@item cat-and-mouse
The same as @code{animate};
The same as @code{animate}.
@item proteus
As @code{animate}, but changes the shape of the mouse pointer too.
@end table
......
......@@ -920,7 +920,6 @@ Unlike the previous two, this variable does not override any
@samp{-*-coding:-*-} tag.
@c FIXME? This seems somewhat out of place. Move to the Rmail section?
@vindex rmail-decode-mime-charset
@vindex rmail-file-coding-system
When you get new mail in Rmail, each message is translated
automatically from the coding system it is written in, as if it were a
......
......@@ -62,8 +62,12 @@ The package's status---normally one of @samp{available} (can be
downloaded from the package archive), @samp{installed}, or
@samp{built-in} (included in Emacs by default).
In some instances, the status can be @samp{held}, @samp{disabled}, or
@samp{obsolete}. @xref{Package Installation}.
The status can also be @samp{new}. This is equivalent to
@samp{available}, except that it means the package became newly
available on the package archive after your last invocation of
@kbd{M-x list-packages}. In other instances, a package may have the
status @samp{held}, @samp{disabled}, or @samp{obsolete}.
@xref{Package Installation}.
@item
A short description of the package.
......
......@@ -326,12 +326,13 @@ as you move around in a buffer.
@findex which-function-mode
@vindex which-func-modes
To either enable or disable Which Function mode, use the command
@kbd{M-x which-function-mode}. Although Which Function mode is a
global minor mode, it takes effect only in certain major modes: those
listed in the variable @code{which-func-modes}. If the value of
@code{which-func-modes} is @code{t} rather than a list of modes, then
Which Function mode applies to all major modes that know how to
support it---in other words, all the major modes that support Imenu.
@kbd{M-x which-function-mode}. Which Function mode is a global minor
mode. By default, it takes effect in all major modes major modes that
know how to support it (i.e.@: all the major modes that support
Imenu). You can restrict it to a specific list of major modes by
changing the value of the variable @code{which-func-modes} from
@code{t} (which means to support all available major modes) to a list
of major mode names.
@node Program Indent
@section Indentation for Programs
......
......@@ -21,6 +21,7 @@ thing, but search for patterns instead of fixed strings.
* Incremental Search:: Search happens as you type the string.
* Nonincremental Search:: Specify entire string and then search.
* Word Search:: Search for sequence of words.
* Symbol Search:: Search for a source code symbol.
* Regexp Search:: Search for match for a regexp.
* Regexps:: Syntax of regular expressions.
* Regexp Backslash:: Regular expression constructs starting with `\'.
......@@ -467,6 +468,47 @@ the search string can match part of a word, so that the matching
proceeds incrementally as you type. This additional laxity does not
apply to the lazy highlight, which always matches whole words.
@node Symbol Search
@section Symbol Search
@cindex symbol search
A @dfn{symbol search} is much like an ordinary search, except that
the boundaries of the search must match the boundaries of a symbol.
The meaning of @dfn{symbol} in this context depends on the major mode,
and usually refers to a source code token, such as a Lisp symbol in
Emacs Lisp mode. For instance, if you perform an incremental symbol
search for the Lisp symbol @code{forward-word}, it would not match
@code{isearch-forward-word}. This feature is thus mainly useful for
searching source code.
@table @kbd
@item M-s _
If incremental search is active, toggle symbol search mode
(@code{isearch-toggle-symbol}); otherwise, begin an incremental
forward symbol search (@code{isearch-forward-symbol}).
@item M-s _ @key{RET} @var{symbol} @key{RET}
Search forward for @var{symbol}, nonincrementally.
@item M-s _ C-r @key{RET} @var{symbol} @key{RET}
Search backward for @var{symbol}, nonincrementally.
@end table
@kindex M-s _
@findex isearch-forward-symbol
To begin a forward incremental symbol search, type @kbd{M-s _}. If
incremental search is not already active, this runs the command
@code{isearch-forward-symbol}. If incremental search is already
active, @kbd{M-s _} switches to a symbol search, preserving the
direction of the search and the current search string; you can disable
symbol search by typing @kbd{M-s _} again. In incremental symbol
search, only the beginning of the search string is required to match
the beginning of a symbol.
To begin a nonincremental symbol search, type @kbd{M-s _ @key{RET}}
for a forward search, or @kbd{M-s _ C-r @key{RET}} or a backward
search. In nonincremental symbol searches, the beginning and end of
the search string are required to match the beginning and end of a
symbol, respectively.
@node Regexp Search
@section Regular Expression Search
@cindex regexp search
......
......@@ -384,12 +384,6 @@ Otherwise, if the buffer is already displayed in an existing window,
are considered, but windows on other frames are also reusable if you
change @code{pop-up-frames} (see below) to @code{t}.
@item
Otherwise, if you specified that the buffer should be displayed in a
special frame by customizing @code{special-display-buffer-names} or
@code{special-display-regexps}, do so. @xref{Choosing Window
Options,,, elisp, The Emacs Lisp Reference Manual}.
@vindex pop-up-frames
@item
Otherwise, optionally create a new frame and display the buffer there.
......
2012-10-27 Chong Yidong <cyd@gnu.org>
* minibuf.texi (High-Level Completion): Don't mention removed
function iswitchb-read-buffer.
* commands.texi (Event Input Misc): Remove last-input-char.
(Command Loop Info): Remove last-command-char.
* frames.texi (Initial Parameters): Don't mention the obsolete
special-display feature.
* windows.texi (Choosing Window): Don't mention the obsolete
special display feature.
(Choosing Window Options): Remove obsolete special-display
variables, and the functions special-display-p and
special-display-popup-frame.
* display.texi (Fringe Bitmaps): Add exclamation-mark bitmap.
* hooks.texi (Standard Hooks): Remove obsolete hooks.
* markers.texi (Information from Markers): Remove obsolete
function buffer-has-markers-at.
* text.texi (Yanking): Document yank-handled-properties.
2012-10-24 Paul Eggert <eggert@penguin.cs.ucla.edu>
Update manual for new time stamp format (Bug#12706).
......
......@@ -71,9 +71,8 @@ been removed, including @code{display-buffer-overriding-action} and
related variables, as well as the @var{action} argument to
@code{display-buffer} and other functions. The way to
programmatically control how Emacs chooses a window to display a
buffer is to bind the right combination of
@code{special-display-regexps}, @code{pop-up-frames}, and other
variables.
buffer is to bind the right combination of @code{pop-up-frames} and
other variables.
@item
The standard completion interface has been simplified, eliminating the
......
......@@ -186,7 +186,6 @@ buffer: } prompts the user with @samp{Frobnicate buffer: } to enter
the name of an existing buffer, which becomes the second and final
argument.
@c Emacs 19 feature
The prompt string can use @samp{%} to include previous argument values
(starting with the first argument) in the prompt. This is done using
@code{format} (@pxref{Formatting Strings}). For example, here is how
......@@ -205,7 +204,6 @@ If @samp{*} appears at the beginning of the string, then an error is
signaled if the buffer is read-only.
@cindex @samp{@@} in @code{interactive}
@c Emacs 19 feature
If @samp{@@} appears at the beginning of the string, and if the key
sequence used to invoke the command includes any mouse events, then
the window associated with the first of those events is selected
......@@ -910,7 +908,6 @@ up a menu. It is also used internally by @code{y-or-n-p}
@end defvar
@defvar last-command-event
@defvarx last-command-char
This variable is set to the last input event that was read by the
command loop as part of a command. The principal use of this variable
is in @code{self-insert-command}, which uses it to decide which
......@@ -926,11 +923,8 @@ last-command-event
@noindent
The value is 5 because that is the @acronym{ASCII} code for @kbd{C-e}.
The alias @code{last-command-char} is obsolete.
@end defvar
@c Emacs 19 feature
@defvar last-event-frame
This variable records which frame the last input event was directed to.
Usually this is the frame that was selected when the event was
......@@ -2386,7 +2380,6 @@ mouse on the window's mode line, you get two events, like this:
@end example
@defvar num-input-keys
@c Emacs 19 feature
This variable's value is the number of key sequences processed so far in
this Emacs session. This includes key sequences read from the terminal
and key sequences read from keyboard macros being executed.
......@@ -2539,7 +2532,6 @@ then continues to wait for a valid input character, or keyboard-quit.
@code{keyboard-translate-table} (if applicable), before returning it
from @code{read-event}.
@c Emacs 19 feature
@defvar extra-keyboard-modifiers
This variable lets Lisp programs ``press'' the modifier keys on the
keyboard. The value is a character. Only the modifiers of the
......@@ -2755,7 +2747,6 @@ may return @code{t} when no input is available.
@end defun
@defvar last-input-event
@defvarx last-input-char
This variable records the last terminal input event read, whether
as part of a command or explicitly by a Lisp program.
......@@ -2774,8 +2765,6 @@ this expression) remains the value of @code{last-command-event}.
@result{} 49
@end group
@end example
The alias @code{last-input-char} is obsolete.
@end defvar
@defmac while-no-input body@dots{}
......
......@@ -3550,8 +3550,8 @@ Used to indicate buffer boundaries.
@itemx @code{vertical-bar}, @code{horizontal-bar}
Used for different types of fringe cursors.
@item @code{empty-line}, @code{question-mark}, @code{exclamation-mark}
Unused.
@item @code{empty-line}, @code{exclamation-mark}, @code{question-mark}, @code{exclamation-mark}
Not used by core Emacs features.
@end table
@noindent
......
......@@ -437,13 +437,11 @@ Emacs frames---the first frame, and subsequent frames. When using the X
Window System, you can get the same results by means of X resources
in many cases.
Setting this variable does not affect existing frames.
Setting this variable does not affect existing frames. Furthermore,
functions that display a buffer in a separate frame may override the
default parameters by supplying their own parameters.
@end defopt
Functions that display a buffer in a separate frame can override the
default parameters by supplying their own parameters. @xref{Definition
of special-display-frame-alist}.
If you invoke Emacs with command-line options that specify frame
appearance, those options take effect by adding elements to either
@code{initial-frame-alist} or @code{default-frame-alist}. Options
......
......@@ -120,14 +120,7 @@ The command loop runs this soon after @code{post-command-hook} (q.v.).
@item delete-terminal-functions
@xref{Multiple Terminals}.
@ignore
@item disabled-command-function
@xref{Disabling Commands}.
@end ignore
@item display-buffer-function
@itemx pop-up-frame-function
@itemx special-display-function
@itemx split-window-preferred-function
@xref{Choosing Window Options}.
......@@ -272,7 +265,6 @@ deferred-action-function
input-method-function
load-read-function
load-source-file-function
macro-declaration-function
read-buffer-function
ring-bell-function
select-safe-coding-system-function
......
......@@ -307,11 +307,6 @@ This function returns the buffer that @var{marker} points into, or
@end example
@end defun
@defun buffer-has-markers-at position
This function returns @code{t} if one or more markers
point at position @var{position} in the current buffer.
@end defun
@node Marker Insertion Types
@section Marker Insertion Types
......
......@@ -1218,11 +1218,9 @@ Buffer name (default foo): @point{}
@end defun
@defopt read-buffer-function
This variable specifies how to read buffer names. The function is
called with the arguments passed to @code{read-buffer}. For example,
if you set this variable to @code{iswitchb-read-buffer}, all Emacs
commands that call @code{read-buffer} to read a buffer name will
actually use the @code{iswitchb} package to read it.
This variable, if non-@code{nil}, specifies a function for reading
buffer names. @code{read-buffer} calls this function instead of doing
its usual work, with the same arguments passed to @code{read-buffer}.
@end defopt
@defopt read-buffer-completion-ignore-case
......
......@@ -899,31 +899,34 @@ In Lisp programs, it is better to use @code{kill-new} or
@node Yanking
@subsection Yanking
Yanking means inserting text from the kill ring, but it does
not insert the text blindly. Yank commands and some other commands
use @code{insert-for-yank} to perform special processing on the
text that they copy into the buffer.
Yanking means inserting text from the kill ring, but it does not
insert the text blindly. The @code{yank} command, and related
commands, use @code{insert-for-yank} to perform special processing on
the text before it is inserted.
@defun insert-for-yank string
This function normally works like @code{insert} except that it doesn't
insert the text properties (@pxref{Text Properties}) in the list
variable @code{yank-excluded-properties}. However, if any part of
@var{string} has a non-@code{nil} @code{yank-handler} text property,
that property can do various special processing on that part of the
text being inserted.
This function works like @code{insert}, except that it processes the
text in @var{string} according to the @code{yank-handler} text
property, as well as the variables @code{yank-handled-properties} and
@code{yank-excluded-properties} (see below), before inserting the
result into the current buffer.
@end defun
@defun insert-buffer-substring-as-yank buf &optional start end
This function resembles @code{insert-buffer-substring} except that it
doesn't insert the text properties in the
@code{yank-excluded-properties} list.
This function resembles @code{insert-buffer-substring}, except that it
processes the text according to @code{yank-handled-properties} and
@code{yank-excluded-properties}. (It does not handle the
@code{yank-handler} property, which does not normally occur in buffer
text anyway.)
@end defun
You can put a @code{yank-handler} text property on all or part of
the text to control how it will be inserted if it is yanked. The
@code{insert-for-yank} function looks for that property. The property
value must be a list of one to four elements, with the following
format (where elements after the first may be omitted):
If you put a @code{yank-handler} text property on all or part of a
string, that alters how @code{insert-for-yank} inserts the string. If
different parts of the string have different @code{yank-handler}
values (comparison being done with @code{eq}), each substring is
handled separately. The property value must be a list of one to four
elements, with the following format (where elements after the first
may be omitted):
@example
(@var{function} @var{param} @var{noexclude} @var{undo})
......@@ -933,22 +936,21 @@ format (where elements after the first may be omitted):
@table @var
@item function
When @var{function} is present and non-@code{nil}, it is called instead of
@code{insert} to insert the string. @var{function} takes one
argument---the string to insert.
When @var{function} is non-@code{nil}, it is called instead of
@code{insert} to insert the string, with one argument---the string to
insert.
@item param
If @var{param} is present and non-@code{nil}, it replaces @var{string}
(or the part of @var{string} being processed) as the object passed to
@var{function} (or @code{insert}); for example, if @var{function} is
@code{yank-rectangle}, @var{param} should be a list of strings to
insert as a rectangle.
(or the substring of @var{string} being processed) as the object
passed to @var{function} (or @code{insert}). For example, if
@var{function} is @code{yank-rectangle}, @var{param} should be a list
of strings to insert as a rectangle.
@item noexclude
If @var{noexclude} is present and non-@code{nil}, the normal removal of the
yank-excluded-properties is not performed; instead @var{function} is
responsible for removing those properties. This may be necessary
if @var{function} adjusts point before or after inserting the object.
If @var{noexclude} is present and non-@code{nil}, that disables the
normal action of @code{yank-handled-properties} and
@code{yank-excluded-properties} on the inserted string.
@item undo
If @var{undo} is present and non-@code{nil}, it is a function that will be
......@@ -959,14 +961,29 @@ the @var{undo} value.
@end table
@cindex yanking and text properties
@defopt yank-handled-properties
This variable specifies special text property handling conditions for
yanked text. It takes effect after the text has been inserted (either
normally, or via the @code{yank-handler} property), and prior to
@code{yank-excluded-properties} taking effect.
The value should be an alist of elements @code{(@var{prop}
. @var{fun})}. Each alist element is handled in order. The inserted
text is scanned for stretches of text having text properties @code{eq}
to @var{prop}; for each such stretch, @var{fun} is called with three
arguments: the value of the property, and the start and end positions
of the text.
@end defopt
@defopt yank-excluded-properties
Yanking discards certain text properties from the yanked text, as
described above. The value of this variable is the list of properties
to discard. Its default value contains properties that might lead to
annoying results, such as causing the text to respond to the mouse or
specifying key bindings.
The value of this variable is the list of properties to remove from
inserted text. Its default value contains properties that might lead
to annoying results, such as causing the text to respond to the mouse
or specifying key bindings. It takes effect after
@code{yank-handled-properties}.
@end defopt
@node Yank Commands
@subsection Functions for Yanking
......
......@@ -1631,11 +1631,6 @@ The variable @code{display-buffer-overriding-action}.
@item
The user option @code{display-buffer-alist}.
@item
A special action for handling @code{special-display-buffer-names} and
@code{special-display-regexps}, if either of those variables is
non-@code{nil}. @xref{Choosing Window Options}.
@item
The @var{action} argument.
......@@ -1864,91 +1859,6 @@ Parameters}), which is used by the default function in
@code{nil}.
@end defopt
@defopt special-display-buffer-names
A list of buffer names identifying buffers that should be displayed
specially. If the name of @var{buffer-or-name} is in this list,
@code{display-buffer} handles the buffer specially. By default, special
display means to give the buffer a dedicated frame.
If an element is a list, instead of a string, then the @sc{car} of that
list is the buffer name, and the rest of that list says how to create
the frame. There are two possibilities for the rest of that list (its
@sc{cdr}): It can be an alist, specifying frame parameters, or it can
contain a function and arguments to give to it. (The function's first
argument is always the buffer to be displayed; the arguments from the
list come after that.)
For example:
@example
(("myfile" (minibuffer) (menu-bar-lines . 0)))
@end example
@noindent
specifies to display a buffer named @samp{myfile} in a dedicated frame
with specified @code{minibuffer} and @code{menu-bar-lines} parameters.
The list of frame parameters can also use the phony frame parameters
@code{same-frame} and @code{same-window}. If the specified frame
parameters include @code{(same-window . @var{value})} and @var{value}
is non-@code{nil}, that means to display the buffer in the current
selected window. Otherwise, if they include @code{(same-frame .
@var{value})} and @var{value} is non-@code{nil}, that means to display
the buffer in a new window in the currently selected frame.
@end defopt
@defopt special-display-regexps
A list of regular expressions specifying buffers that should be
displayed specially. If the buffer's name matches any of the regular
expressions in this list, @code{display-buffer} handles the buffer
specially. By default, special display means to give the buffer a
dedicated frame.
If an element is a list, instead of a string, then the @sc{car} of the
list is the regular expression, and the rest of the list says how to
create the frame. See @code{special-display-buffer-names} above.
@end defopt
@defun special-display-p buffer-name
This function returns non-@code{nil} if displaying a buffer
named @var{buffer-name} with @code{display-buffer} would
create a special frame. The value is @code{t} if it would
use the default frame parameters, or else the specified list
of frame parameters.
@end defun
@defopt special-display-function
This variable holds the function to call to display a buffer specially.
It receives the buffer as an argument, and should return the window in
which it is displayed. The default value of this variable is
@code{special-display-popup-frame}, see below.
@end defopt
@defun special-display-popup-frame buffer &optional args
This function tries to make @var{buffer} visible in a frame of its own.
If @var{buffer} is already displayed in some window, it makes that
window's frame visible and raises it. Otherwise, it creates a frame
that is dedicated to @var{buffer}. The return value is the window used
to display @var{buffer}.
If @var{args} is an alist, it specifies frame parameters for the new
frame. If @var{args} is a list whose @sc{car} is a symbol, then
@code{(car @var{args})} is a function to actually create and
set up the frame; it is called with @var{buffer} as first argument, and
@code{(cdr @var{args})} as additional arguments.
This function always uses an existing window displaying @var{buffer},
whether or not it is in a frame of its own; but if you set up the above
variables in your init file, before @var{buffer} was created, then
presumably the window was previously made by this function.
@end defun
@defopt special-display-frame-alist
@anchor{Definition of special-display-frame-alist}
This variable holds frame parameters for
@code{special-display-popup-frame} to use when it creates a frame.
@end defopt
@defopt same-window-buffer-names
A list of buffer names for buffers that should be displayed in the
selected window. If a buffer's name is in this list,
......@@ -1969,19 +1879,6 @@ named @var{buffer-name} with @code{display-buffer} would
put it in the selected window.
@end defun
@c Emacs 19 feature
@defopt display-buffer-function
This variable is the most flexible way to customize the behavior of
@code{display-buffer}. If it is non-@code{nil}, it should be a function
that @code{display-buffer} calls to do the work. The function should
accept two arguments, the first two arguments that @code{display-buffer}
received. It should choose or create a window, display the specified
buffer in it, and then return the window.
This variable takes precedence over all the other options described
above.
@end defopt
@node Window History