Resorted; add some missing Morohashi's Daikanwa characters; add
[chise/xemacs-chise.git] / info / lispref.info-25
index 10440f3..4c3e6d6 100644 (file)
@@ -1,5 +1,5 @@
-This is Info file ../info/lispref.info, produced by Makeinfo version
-1.68 from the input file lispref/lispref.texi.
+This is ../info/lispref.info, produced by makeinfo version 4.0 from
+lispref/lispref.texi.
 
 INFO-DIR-SECTION XEmacs Editor
 START-INFO-DIR-ENTRY
@@ -50,6 +50,500 @@ may be included in a translation approved by the Free Software
 Foundation instead of in the original English.
 
 \1f
+File: lispref.info,  Node: Buffer Basics,  Next: Current Buffer,  Up: Buffers
+
+Buffer Basics
+=============
+
+   A "buffer" is a Lisp object containing text to be edited.  Buffers
+are used to hold the contents of files that are being visited; there may
+also be buffers that are not visiting files.  While several buffers may
+exist at one time, exactly one buffer is designated the "current
+buffer" at any time.  Most editing commands act on the contents of the
+current buffer.  Each buffer, including the current buffer, may or may
+not be displayed in any windows.
+
+   Buffers in Emacs editing are objects that have distinct names and
+hold text that can be edited.  Buffers appear to Lisp programs as a
+special data type.  You can think of the contents of a buffer as an
+extendable string; insertions and deletions may occur in any part of
+the buffer.  *Note Text::.
+
+   A Lisp buffer object contains numerous pieces of information.  Some
+of this information is directly accessible to the programmer through
+variables, while other information is accessible only through
+special-purpose functions.  For example, the visited file name is
+directly accessible through a variable, while the value of point is
+accessible only through a primitive function.
+
+   Buffer-specific information that is directly accessible is stored in
+"buffer-local" variable bindings, which are variable values that are
+effective only in a particular buffer.  This feature allows each buffer
+to override the values of certain variables.  Most major modes override
+variables such as `fill-column' or `comment-column' in this way.  For
+more information about buffer-local variables and functions related to
+them, see *Note Buffer-Local Variables::.
+
+   For functions and variables related to visiting files in buffers, see
+*Note Visiting Files:: and *Note Saving Buffers::.  For functions and
+variables related to the display of buffers in windows, see *Note
+Buffers and Windows::.
+
+ - Function: bufferp object
+     This function returns `t' if OBJECT is a buffer, `nil' otherwise.
+
+\1f
+File: lispref.info,  Node: Current Buffer,  Next: Buffer Names,  Prev: Buffer Basics,  Up: Buffers
+
+The Current Buffer
+==================
+
+   There are, in general, many buffers in an Emacs session.  At any
+time, one of them is designated as the "current buffer".  This is the
+buffer in which most editing takes place, because most of the primitives
+for examining or changing text in a buffer operate implicitly on the
+current buffer (*note Text::).  Normally the buffer that is displayed on
+the screen in the selected window is the current buffer, but this is not
+always so: a Lisp program can designate any buffer as current
+temporarily in order to operate on its contents, without changing what
+is displayed on the screen.
+
+   The way to designate a current buffer in a Lisp program is by calling
+`set-buffer'.  The specified buffer remains current until a new one is
+designated.
+
+   When an editing command returns to the editor command loop, the
+command loop designates the buffer displayed in the selected window as
+current, to prevent confusion: the buffer that the cursor is in when
+Emacs reads a command is the buffer that the command will apply to.
+(*Note Command Loop::.)  Therefore, `set-buffer' is not the way to
+switch visibly to a different buffer so that the user can edit it.  For
+this, you must use the functions described in *Note Displaying
+Buffers::.
+
+   However, Lisp functions that change to a different current buffer
+should not depend on the command loop to set it back afterwards.
+Editing commands written in XEmacs Lisp can be called from other
+programs as well as from the command loop.  It is convenient for the
+caller if the subroutine does not change which buffer is current
+(unless, of course, that is the subroutine's purpose).  Therefore, you
+should normally use `set-buffer' within a `save-excursion' that will
+restore the current buffer when your function is done (*note
+Excursions::).  Here is an example, the code for the command
+`append-to-buffer' (with the documentation string abridged):
+
+     (defun append-to-buffer (buffer start end)
+       "Append to specified buffer the text of the region.
+     ..."
+       (interactive "BAppend to buffer: \nr")
+       (let ((oldbuf (current-buffer)))
+         (save-excursion
+           (set-buffer (get-buffer-create buffer))
+           (insert-buffer-substring oldbuf start end))))
+
+This function binds a local variable to the current buffer, and then
+`save-excursion' records the values of point, the mark, and the
+original buffer.  Next, `set-buffer' makes another buffer current.
+Finally, `insert-buffer-substring' copies the string from the original
+current buffer to the new current buffer.
+
+   If the buffer appended to happens to be displayed in some window,
+the next redisplay will show how its text has changed.  Otherwise, you
+will not see the change immediately on the screen.  The buffer becomes
+current temporarily during the execution of the command, but this does
+not cause it to be displayed.
+
+   If you make local bindings (with `let' or function arguments) for a
+variable that may also have buffer-local bindings, make sure that the
+same buffer is current at the beginning and at the end of the local
+binding's scope.  Otherwise you might bind it in one buffer and unbind
+it in another!  There are two ways to do this.  In simple cases, you may
+see that nothing ever changes the current buffer within the scope of the
+binding.  Otherwise, use `save-excursion' to make sure that the buffer
+current at the beginning is current again whenever the variable is
+unbound.
+
+   It is not reliable to change the current buffer back with
+`set-buffer', because that won't do the job if a quit happens while the
+wrong buffer is current.  Here is what _not_ to do:
+
+     (let (buffer-read-only
+           (obuf (current-buffer)))
+       (set-buffer ...)
+       ...
+       (set-buffer obuf))
+
+Using `save-excursion', as shown below, handles quitting, errors, and
+`throw', as well as ordinary evaluation.
+
+     (let (buffer-read-only)
+       (save-excursion
+         (set-buffer ...)
+         ...))
+
+ - Function: current-buffer
+     This function returns the current buffer.
+
+          (current-buffer)
+               => #<buffer buffers.texi>
+
+ - Function: set-buffer buffer-or-name
+     This function makes BUFFER-OR-NAME the current buffer.  It does
+     not display the buffer in the currently selected window or in any
+     other window, so the user cannot necessarily see the buffer.  But
+     Lisp programs can in any case work on it.
+
+     This function returns the buffer identified by BUFFER-OR-NAME.  An
+     error is signaled if BUFFER-OR-NAME does not identify an existing
+     buffer.
+
+\1f
+File: lispref.info,  Node: Buffer Names,  Next: Buffer File Name,  Prev: Current Buffer,  Up: Buffers
+
+Buffer Names
+============
+
+   Each buffer has a unique name, which is a string.  Many of the
+functions that work on buffers accept either a buffer or a buffer name
+as an argument.  Any argument called BUFFER-OR-NAME is of this sort,
+and an error is signaled if it is neither a string nor a buffer.  Any
+argument called BUFFER must be an actual buffer object, not a name.
+
+   Buffers that are ephemeral and generally uninteresting to the user
+have names starting with a space, so that the `list-buffers' and
+`buffer-menu' commands don't mention them.  A name starting with space
+also initially disables recording undo information; see *Note Undo::.
+
+ - Function: buffer-name &optional buffer
+     This function returns the name of BUFFER as a string.  If BUFFER
+     is not supplied, it defaults to the current buffer.
+
+     If `buffer-name' returns `nil', it means that BUFFER has been
+     killed.  *Note Killing Buffers::.
+
+          (buffer-name)
+               => "buffers.texi"
+          
+          (setq foo (get-buffer "temp"))
+               => #<buffer temp>
+          (kill-buffer foo)
+               => nil
+          (buffer-name foo)
+               => nil
+          foo
+               => #<killed buffer>
+
+ - Command: rename-buffer newname &optional unique
+     This function renames the current buffer to NEWNAME.  An error is
+     signaled if NEWNAME is not a string, or if there is already a
+     buffer with that name.  The function returns `nil'.
+
+     Ordinarily, `rename-buffer' signals an error if NEWNAME is already
+     in use.  However, if UNIQUE is non-`nil', it modifies NEWNAME to
+     make a name that is not in use.  Interactively, you can make
+     UNIQUE non-`nil' with a numeric prefix argument.
+
+     One application of this command is to rename the `*shell*' buffer
+     to some other name, thus making it possible to create a second
+     shell buffer under the name `*shell*'.
+
+ - Function: get-buffer buffer-or-name
+     This function returns the buffer specified by BUFFER-OR-NAME.  If
+     BUFFER-OR-NAME is a string and there is no buffer with that name,
+     the value is `nil'.  If BUFFER-OR-NAME is a buffer, it is returned
+     as given.  (That is not very useful, so the argument is usually a
+     name.)  For example:
+
+          (setq b (get-buffer "lewis"))
+               => #<buffer lewis>
+          (get-buffer b)
+               => #<buffer lewis>
+          (get-buffer "Frazzle-nots")
+               => nil
+
+     See also the function `get-buffer-create' in *Note Creating
+     Buffers::.
+
+ - Function: generate-new-buffer-name starting-name &optional ignore
+     This function returns a name that would be unique for a new
+     buffer--but does not create the buffer.  It starts with
+     STARTING-NAME, and produces a name not currently in use for any
+     buffer by appending a number inside of `<...>'.
+
+     If IGNORE is given, it specifies a name that is okay to use (if it
+     is in the sequence to be tried), even if a buffer with that name
+     exists.
+
+     See the related function `generate-new-buffer' in *Note Creating
+     Buffers::.
+
+\1f
+File: lispref.info,  Node: Buffer File Name,  Next: Buffer Modification,  Prev: Buffer Names,  Up: Buffers
+
+Buffer File Name
+================
+
+   The "buffer file name" is the name of the file that is visited in
+that buffer.  When a buffer is not visiting a file, its buffer file name
+is `nil'.  Most of the time, the buffer name is the same as the
+nondirectory part of the buffer file name, but the buffer file name and
+the buffer name are distinct and can be set independently.  *Note
+Visiting Files::.
+
+ - Function: buffer-file-name &optional buffer
+     This function returns the absolute file name of the file that
+     BUFFER is visiting.  If BUFFER is not visiting any file,
+     `buffer-file-name' returns `nil'.  If BUFFER is not supplied, it
+     defaults to the current buffer.
+
+          (buffer-file-name (other-buffer))
+               => "/usr/user/lewis/manual/files.texi"
+
+ - Variable: buffer-file-name
+     This buffer-local variable contains the name of the file being
+     visited in the current buffer, or `nil' if it is not visiting a
+     file.  It is a permanent local, unaffected by
+     `kill-local-variables'.
+
+          buffer-file-name
+               => "/usr/user/lewis/manual/buffers.texi"
+
+     It is risky to change this variable's value without doing various
+     other things.  See the definition of `set-visited-file-name' in
+     `files.el'; some of the things done there, such as changing the
+     buffer name, are not strictly necessary, but others are essential
+     to avoid confusing XEmacs.
+
+ - Variable: buffer-file-truename
+     This buffer-local variable holds the truename of the file visited
+     in the current buffer, or `nil' if no file is visited.  It is a
+     permanent local, unaffected by `kill-local-variables'.  *Note
+     Truenames::.
+
+ - Variable: buffer-file-number
+     This buffer-local variable holds the file number and directory
+     device number of the file visited in the current buffer, or `nil'
+     if no file or a nonexistent file is visited.  It is a permanent
+     local, unaffected by `kill-local-variables'.  *Note Truenames::.
+
+     The value is normally a list of the form `(FILENUM DEVNUM)'.  This
+     pair of numbers uniquely identifies the file among all files
+     accessible on the system.  See the function `file-attributes', in
+     *Note File Attributes::, for more information about them.
+
+ - Function: get-file-buffer filename
+     This function returns the buffer visiting file FILENAME.  If there
+     is no such buffer, it returns `nil'.  The argument FILENAME, which
+     must be a string, is expanded (*note File Name Expansion::), then
+     compared against the visited file names of all live buffers.
+
+          (get-file-buffer "buffers.texi")
+              => #<buffer buffers.texi>
+
+     In unusual circumstances, there can be more than one buffer
+     visiting the same file name.  In such cases, this function returns
+     the first such buffer in the buffer list.
+
+ - Command: set-visited-file-name filename
+     If FILENAME is a non-empty string, this function changes the name
+     of the file visited in current buffer to FILENAME.  (If the buffer
+     had no visited file, this gives it one.)  The _next time_ the
+     buffer is saved it will go in the newly-specified file.  This
+     command marks the buffer as modified, since it does not (as far as
+     XEmacs knows) match the contents of FILENAME, even if it matched
+     the former visited file.
+
+     If FILENAME is `nil' or the empty string, that stands for "no
+     visited file".  In this case, `set-visited-file-name' marks the
+     buffer as having no visited file.
+
+     When the function `set-visited-file-name' is called interactively,
+     it prompts for FILENAME in the minibuffer.
+
+     See also `clear-visited-file-modtime' and
+     `verify-visited-file-modtime' in *Note Buffer Modification::.
+
+ - Variable: list-buffers-directory
+     This buffer-local variable records a string to display in a buffer
+     listing in place of the visited file name, for buffers that don't
+     have a visited file name.  Dired buffers use this variable.
+
+\1f
+File: lispref.info,  Node: Buffer Modification,  Next: Modification Time,  Prev: Buffer File Name,  Up: Buffers
+
+Buffer Modification
+===================
+
+   XEmacs keeps a flag called the "modified flag" for each buffer, to
+record whether you have changed the text of the buffer.  This flag is
+set to `t' whenever you alter the contents of the buffer, and cleared
+to `nil' when you save it.  Thus, the flag shows whether there are
+unsaved changes.  The flag value is normally shown in the modeline
+(*note Modeline Variables::), and controls saving (*note Saving
+Buffers::) and auto-saving (*note Auto-Saving::).
+
+   Some Lisp programs set the flag explicitly.  For example, the
+function `set-visited-file-name' sets the flag to `t', because the text
+does not match the newly-visited file, even if it is unchanged from the
+file formerly visited.
+
+   The functions that modify the contents of buffers are described in
+*Note Text::.
+
+ - Function: buffer-modified-p &optional buffer
+     This function returns `t' if the buffer BUFFER has been modified
+     since it was last read in from a file or saved, or `nil'
+     otherwise.  If BUFFER is not supplied, the current buffer is
+     tested.
+
+ - Function: set-buffer-modified-p flag
+     This function marks the current buffer as modified if FLAG is
+     non-`nil', or as unmodified if the flag is `nil'.
+
+     Another effect of calling this function is to cause unconditional
+     redisplay of the modeline for the current buffer.  In fact, the
+     function `redraw-modeline' works by doing this:
+
+          (set-buffer-modified-p (buffer-modified-p))
+
+ - Command: not-modified &optional arg
+     This command marks the current buffer as unmodified, and not
+     needing to be saved. (If ARG is non-`nil', the buffer is instead
+     marked as modified.) Don't use this function in programs, since it
+     prints a message in the echo area; use `set-buffer-modified-p'
+     (above) instead.
+
+ - Function: buffer-modified-tick &optional buffer
+     This function returns BUFFER`s modification-count.  This is a
+     counter that increments every time the buffer is modified.  If
+     BUFFER is `nil' (or omitted), the current buffer is used.
+
+\1f
+File: lispref.info,  Node: Modification Time,  Next: Read Only Buffers,  Prev: Buffer Modification,  Up: Buffers
+
+Comparison of Modification Time
+===============================
+
+   Suppose that you visit a file and make changes in its buffer, and
+meanwhile the file itself is changed on disk.  At this point, saving the
+buffer would overwrite the changes in the file.  Occasionally this may
+be what you want, but usually it would lose valuable information.
+XEmacs therefore checks the file's modification time using the functions
+described below before saving the file.
+
+ - Function: verify-visited-file-modtime buffer
+     This function compares what BUFFER has recorded for the
+     modification time of its visited file against the actual
+     modification time of the file as recorded by the operating system.
+     The two should be the same unless some other process has written
+     the file since XEmacs visited or saved it.
+
+     The function returns `t' if the last actual modification time and
+     XEmacs's recorded modification time are the same, `nil' otherwise.
+
+ - Function: clear-visited-file-modtime
+     This function clears out the record of the last modification time
+     of the file being visited by the current buffer.  As a result, the
+     next attempt to save this buffer will not complain of a
+     discrepancy in file modification times.
+
+     This function is called in `set-visited-file-name' and other
+     exceptional places where the usual test to avoid overwriting a
+     changed file should not be done.
+
+ - Function: visited-file-modtime
+     This function returns the buffer's recorded last file modification
+     time, as a list of the form `(HIGH . LOW)'.  (This is the same
+     format that `file-attributes' uses to return time values; see
+     *Note File Attributes::.)
+
+ - Function: set-visited-file-modtime &optional time
+     This function updates the buffer's record of the last modification
+     time of the visited file, to the value specified by TIME if TIME
+     is not `nil', and otherwise to the last modification time of the
+     visited file.
+
+     If TIME is not `nil', it should have the form `(HIGH . LOW)' or
+     `(HIGH LOW)', in either case containing two integers, each of
+     which holds 16 bits of the time.
+
+     This function is useful if the buffer was not read from the file
+     normally, or if the file itself has been changed for some known
+     benign reason.
+
+ - Function: ask-user-about-supersession-threat filename
+     This function is used to ask a user how to proceed after an
+     attempt to modify an obsolete buffer visiting file FILENAME.  An
+     "obsolete buffer" is an unmodified buffer for which the associated
+     file on disk is newer than the last save-time of the buffer.  This
+     means some other program has probably altered the file.
+
+     Depending on the user's answer, the function may return normally,
+     in which case the modification of the buffer proceeds, or it may
+     signal a `file-supersession' error with data `(FILENAME)', in which
+     case the proposed buffer modification is not allowed.
+
+     This function is called automatically by XEmacs on the proper
+     occasions.  It exists so you can customize XEmacs by redefining it.
+     See the file `userlock.el' for the standard definition.
+
+     See also the file locking mechanism in *Note File Locks::.
+
+\1f
+File: lispref.info,  Node: Read Only Buffers,  Next: The Buffer List,  Prev: Modification Time,  Up: Buffers
+
+Read-Only Buffers
+=================
+
+   If a buffer is "read-only", then you cannot change its contents,
+although you may change your view of the contents by scrolling and
+narrowing.
+
+   Read-only buffers are used in two kinds of situations:
+
+   * A buffer visiting a write-protected file is normally read-only.
+
+     Here, the purpose is to show the user that editing the buffer with
+     the aim of saving it in the file may be futile or undesirable.
+     The user who wants to change the buffer text despite this can do
+     so after clearing the read-only flag with `C-x C-q'.
+
+   * Modes such as Dired and Rmail make buffers read-only when altering
+     the contents with the usual editing commands is probably a mistake.
+
+     The special commands of these modes bind `buffer-read-only' to
+     `nil' (with `let') or bind `inhibit-read-only' to `t' around the
+     places where they change the text.
+
+ - Variable: buffer-read-only
+     This buffer-local variable specifies whether the buffer is
+     read-only.  The buffer is read-only if this variable is non-`nil'.
+
+ - Variable: inhibit-read-only
+     If this variable is non-`nil', then read-only buffers and read-only
+     characters may be modified.  Read-only characters in a buffer are
+     those that have non-`nil' `read-only' properties (either text
+     properties or extent properties).  *Note Extent Properties::, for
+     more information about text properties and extent properties.
+
+     If `inhibit-read-only' is `t', all `read-only' character
+     properties have no effect.  If `inhibit-read-only' is a list, then
+     `read-only' character properties have no effect if they are members
+     of the list (comparison is done with `eq').
+
+ - Command: toggle-read-only
+     This command changes whether the current buffer is read-only.  It
+     is intended for interactive use; don't use it in programs.  At any
+     given point in a program, you should know whether you want the
+     read-only flag on or off; so you can set `buffer-read-only'
+     explicitly to the proper value, `t' or `nil'.
+
+ - Function: barf-if-buffer-read-only
+     This function signals a `buffer-read-only' error if the current
+     buffer is read-only.  *Note Interactive Call::, for another way to
+     signal an error if the current buffer is read-only.
+
+\1f
 File: lispref.info,  Node: The Buffer List,  Next: Creating Buffers,  Prev: Read Only Buffers,  Up: Buffers
 
 The Buffer List
@@ -72,7 +566,7 @@ that is independent of the buffer list orders for any particular frame.
    Note that the different buffer lists all contain the same elements.
 It is only the order of those elements that is different.
 
- - Function: buffer-list &optional FRAME
+ - Function: buffer-list &optional frame
      This function returns a list of all buffers, including those whose
      names begin with a space.  The elements are actual buffers, not
      their names.  The order of the list is specific to FRAME, which
@@ -96,7 +590,7 @@ It is only the order of those elements that is different.
      This list is a copy of a list used inside XEmacs; modifying it has
      no effect on the buffers.
 
- - Function: other-buffer &optional BUFFER-OR-NAME FRAME VISIBLE-OK
+ - Function: other-buffer &optional buffer-or-name frame visible-ok
      This function returns the first buffer in the buffer list other
      than BUFFER-OR-NAME, in FRAME's ordering for the buffer list.
      (FRAME defaults to the current frame.  If FRAME is `t', then the
@@ -128,14 +622,14 @@ It is only the order of those elements that is different.
      VISIBLE-OK is the second argument instead of the third.  FSF Emacs
      19.
 
- - Command: list-buffers &optional FILES-ONLY
+ - Command: list-buffers &optional files-only
      This function displays a listing of the names of existing buffers.
      It clears the buffer `*Buffer List*', then inserts the listing
      into that buffer and displays it in a window.  `list-buffers' is
      intended for interactive use, and is described fully in `The XEmacs
      Reference Manual'.  It returns `nil'.
 
- - Command: bury-buffer &optional BUFFER-OR-NAME
+ - Command: bury-buffer &optional buffer-or-name
      This function puts BUFFER-OR-NAME at the end of the buffer list
      without changing the order of any of the other buffers on the list.
      This buffer therefore becomes the least desirable candidate for
@@ -162,11 +656,11 @@ with the specified name; `generate-new-buffer' always creates a new
 buffer and gives it a unique name.
 
    Other functions you can use to create buffers include
-`with-output-to-temp-buffer' (*note Temporary Displays::.) and
-`create-file-buffer' (*note Visiting Files::.).  Starting a subprocess
-can also create a buffer (*note Processes::.).
+`with-output-to-temp-buffer' (*note Temporary Displays::) and
+`create-file-buffer' (*note Visiting Files::).  Starting a subprocess
+can also create a buffer (*note Processes::).
 
- - Function: get-buffer-create NAME
+ - Function: get-buffer-create name
      This function returns a buffer named NAME.  It returns an existing
      buffer with that name, if one exists; otherwise, it creates a new
      buffer.  The buffer does not become the current buffer--this
@@ -181,7 +675,7 @@ can also create a buffer (*note Processes::.).
      variable `default-major-mode' is handled at a higher level.  *Note
      Auto Major Mode::.
 
- - Function: generate-new-buffer NAME
+ - Function: generate-new-buffer name
      This function returns a newly created, empty buffer, but does not
      make it current.  If there is no buffer named NAME, then that is
      the name of the new buffer.  If that name is in use, this function
@@ -234,11 +728,11 @@ buffers, the indirect buffers are automatically killed as well.
 buffer has been killed, you can either use this feature or the function
 `buffer-live-p'.
 
- - Function: buffer-live-p BUFFER
+ - Function: buffer-live-p buffer
      This function returns `nil' if BUFFER is deleted, and `t'
      otherwise.
 
- - Command: kill-buffer BUFFER-OR-NAME
+ - Command: kill-buffer buffer-or-name
      This function kills the buffer BUFFER-OR-NAME, freeing all its
      memory for use as space for other buffers.  (Emacs version 18 and
      older was unable to return the memory to the operating system.)
@@ -320,7 +814,7 @@ base buffer.
    Killing an indirect buffer has no effect on its base buffer.  Killing
 the base buffer kills all its indirect children.
 
- - Command: make-indirect-buffer BASE-BUFFER NAME
+ - Command: make-indirect-buffer base-buffer name
      This creates an indirect buffer named NAME whose base buffer is
      BASE-BUFFER.  The argument BASE-BUFFER may be a buffer or a string.
 
@@ -330,7 +824,7 @@ the base buffer kills all its indirect children.
           (make-indirect-buffer "*scratch*" "indirect")
                => #<buffer "indirect">
 
- - Function: buffer-base-buffer &optional BUFFER
+ - Function: buffer-base-buffer &optional buffer
      This function returns the base buffer of BUFFER.  If BUFFER is not
      indirect, the value is `nil'.  Otherwise, the value is another
      buffer, which is never an indirect buffer.  If BUFFER is not
@@ -339,7 +833,7 @@ the base buffer kills all its indirect children.
           (buffer-base-buffer (get-buffer "indirect"))
                => #<buffer "*scratch*">
 
- - Function: buffer-indirect-children &optional BUFFER
+ - Function: buffer-indirect-children &optional buffer
      This function returns a list of all indirect buffers whose base
      buffer is BUFFER.  If BUFFER is indirect, the return value will
      always be nil; see `make-indirect-buffer'.  If BUFFER is not
@@ -404,8 +898,8 @@ has been used).  *Note Current Buffer::.
 
    For practical purposes, a window exists only while it is displayed in
 a frame.  Once removed from the frame, the window is effectively deleted
-and should not be used, *even though there may still be references to
-it* from other Lisp objects.  Restoring a saved window configuration is
+and should not be used, _even though there may still be references to
+it_ from other Lisp objects.  Restoring a saved window configuration is
 the only way for a window no longer on the screen to come back to life.
 (*Note Deleting Windows::.)
 
@@ -454,7 +948,7 @@ Windows::, and *Note Size of Window::.
    *Note Display::, for information on how the contents of the window's
 buffer are displayed in the window.
 
- - Function: windowp OBJECT
+ - Function: windowp object
      This function returns `t' if OBJECT is a window.
 
 \1f
@@ -466,13 +960,13 @@ Splitting Windows
    The functions described here are the primitives used to split a
 window into two windows.  Two higher level functions sometimes split a
 window, but not always: `pop-to-buffer' and `display-buffer' (*note
-Displaying Buffers::.).
+Displaying Buffers::).
 
    The functions described here do not accept a buffer as an argument.
 The two "halves" of the split window initially display the same buffer
 previously visible in the window that was split.
 
- - Function: one-window-p &optional NO-MINI ALL-FRAMES
+ - Function: one-window-p &optional no-mini all-frames
      This function returns non-`nil' if there is only one window.  The
      argument NO-MINI, if non-`nil', means don't count the minibuffer
      even if it is active; otherwise, the minibuffer window is
@@ -497,7 +991,7 @@ previously visible in the window that was split.
           WINDOW's frame are counted, excluding the minibuffer in use
           if it lies in some other frame.
 
- - Command: split-window &optional WINDOW SIZE HORIZONTAL
+ - Command: split-window &optional window size horizontal
      This function splits WINDOW into two windows.  The original window
      WINDOW remains the selected window, but occupies only part of its
      former screen area.  The rest is occupied by a newly created
@@ -524,21 +1018,19 @@ previously visible in the window that was split.
                => #<window 8 on windows.texi>
           (window-edges)          ; Edges in order:
                => (0 0 80 50)     ;   left-top-right-bottom
-
+          
           ;; Returns window created
           (setq w2 (split-window w 15))
                => #<window 28 on windows.texi>
-
           (window-edges w2)
                => (0 15 80 50)    ; Bottom window;
                                   ;   top is line 15
-
           (window-edges w)
                => (0 0 80 15)     ; Top window
 
      The frame looks like this:
 
-          __________
+                   __________
                   |          |  line 0
                   |    w     |
                   |__________|
@@ -552,19 +1044,16 @@ previously visible in the window that was split.
 
           (setq w3 (split-window w 35 t))
                => #<window 32 on windows.texi>
-
           (window-edges w3)
                => (35 0 80 15)  ; Left edge at column 35
-
           (window-edges w)
                => (0 0 35 15)   ; Right edge at column 35
-
           (window-edges w2)
                => (0 15 80 50)  ; Bottom window unchanged
 
      Now, the screen looks like this:
 
-          column 35
+               column 35
                    __________
                   |   |      |  line 0
                   | w |  w3  |
@@ -580,7 +1069,7 @@ previously visible in the window that was split.
      or `|' characters.  The display table can specify alternative
      border characters; see *Note Display Tables::.
 
- - Command: split-window-vertically &optional SIZE
+ - Command: split-window-vertically &optional size
      This function splits the selected window into two windows, one
      above the other, leaving the selected window with SIZE lines.
 
@@ -592,7 +1081,7 @@ previously visible in the window that was split.
             (interactive "P")
             (split-window nil (and arg (prefix-numeric-value arg))))
 
- - Command: split-window-horizontally &optional SIZE
+ - Command: split-window-horizontally &optional size
      This function splits the selected window into two windows
      side-by-side, leaving the selected window with SIZE columns.
 
@@ -605,7 +1094,7 @@ previously visible in the window that was split.
             (interactive "P")
             (split-window nil (and arg (prefix-numeric-value arg)) t))
 
- - Function: one-window-p &optional NO-MINI ALL-FRAMES
+ - Function: one-window-p &optional no-mini all-frames
      This function returns non-`nil' if there is only one window.  The
      argument NO-MINI, if non-`nil', means don't count the minibuffer
      even if it is active; otherwise, the minibuffer window is
@@ -643,21 +1132,21 @@ calling certain functions that delete windows.  A deleted window cannot
 appear on the screen, but continues to exist as a Lisp object until
 there are no references to it.  There is no way to cancel the deletion
 of a window aside from restoring a saved window configuration (*note
-Window Configurations::.).  Restoring a window configuration also
+Window Configurations::).  Restoring a window configuration also
 deletes any windows that aren't part of that configuration.
 
    When you delete a window, the space it took up is given to one
 adjacent sibling.  (In Emacs version 18, the space was divided evenly
 among all the siblings.)
 
- - Function: window-live-p WINDOW
+ - Function: window-live-p window
      This function returns `nil' if WINDOW is deleted, and `t'
      otherwise.
 
      *Warning:* Erroneous information or fatal errors may result from
      using a deleted window as if it were live.
 
- - Command: delete-window &optional WINDOW
+ - Command: delete-window &optional window
      This function removes WINDOW from the display.  If WINDOW is
      omitted, then the selected window is deleted.  An error is signaled
      if there is only one window when `delete-window' is called.
@@ -667,14 +1156,14 @@ among all the siblings.)
      When `delete-window' is called interactively, WINDOW defaults to
      the selected window.
 
- - Command: delete-other-windows &optional WINDOW
+ - Command: delete-other-windows &optional window
      This function makes WINDOW the only window on its frame, by
      deleting the other windows in that frame.  If WINDOW is omitted or
      `nil', then the selected window is used by default.
 
      The result is `nil'.
 
- - Command: delete-windows-on BUFFER &optional FRAME
+ - Command: delete-windows-on buffer &optional frame
      This function deletes all windows showing BUFFER.  If there are no
      windows showing BUFFER, it does nothing.
 
@@ -700,520 +1189,3 @@ among all the siblings.)
 
      This function always returns `nil'.
 
-\1f
-File: lispref.info,  Node: Selecting Windows,  Next: Cyclic Window Ordering,  Prev: Deleting Windows,  Up: Windows
-
-Selecting Windows
-=================
-
-   When a window is selected, the buffer in the window becomes the
-current buffer, and the cursor will appear in it.
-
- - Function: selected-window &optional DEVICE
-     This function returns the selected window.  This is the window in
-     which the cursor appears and to which many commands apply.  Each
-     separate device can have its own selected window, which is
-     remembered as focus changes from device to device.  Optional
-     argument DEVICE specifies which device to return the selected
-     window for, and defaults to the selected device.
-
- - Function: select-window WINDOW &optional NORECORD
-     This function makes WINDOW the selected window.  The cursor then
-     appears in WINDOW (on redisplay).  The buffer being displayed in
-     WINDOW is immediately designated the current buffer.
-
-     If optional argument NORECORD is non-`nil' then the global and
-     per-frame buffer orderings are not modified, as by the function
-     `record-buffer'.
-
-     The return value is WINDOW.
-
-          (setq w (next-window))
-          (select-window w)
-               => #<window 65 on windows.texi>
-
- - Macro: save-selected-window FORMS...
-     This macro records the selected window, executes 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 FORMS change them, the changes are
-     permanent.
-
-   The following functions choose one of the windows on the screen,
-offering various criteria for the choice.
-
- - Function: get-lru-window &optional FRAME
-     This function returns the window least recently "used" (that is,
-     selected).  The selected window is always the most recently used
-     window.
-
-     The selected window can be the least recently used window if it is
-     the 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 FRAME controls which windows are considered.
-
-        * If it is `nil', consider windows on the selected frame.
-
-        * If it is `t', consider windows on all frames.
-
-        * If it is `visible', consider windows on all visible frames.
-
-        * If it is 0, consider windows on all visible or iconified
-          frames.
-
-        * If it is a frame, consider windows on that frame.
-
- - Function: get-largest-window &optional FRAME
-     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.
-
-     If there are two windows of the same size, then the function
-     returns the window that is first in the cyclic ordering of windows
-     (see following section), starting from the selected window.
-
-     The argument FRAME controls which set of windows are considered.
-     See `get-lru-window', above.
-
-\1f
-File: lispref.info,  Node: Cyclic Window Ordering,  Next: Buffers and Windows,  Prev: Selecting Windows,  Up: Windows
-
-Cyclic Ordering of Windows
-==========================
-
-   When you use the command `C-x o' (`other-window') to select the next
-window, it moves through all the windows on the screen in a specific
-cyclic order.  For any given configuration of windows, this order never
-varies.  It is called the "cyclic ordering of windows".
-
-   This ordering generally goes from top to bottom, and from left to
-right.  But it may go down first or go right first, depending on the
-order in which the windows were split.
-
-   If the first split was vertical (into windows one above each other),
-and then the subwindows were split horizontally, then the ordering is
-left to right in the top of the frame, and then left to right in the
-next lower part of the frame, and so on.  If the first split was
-horizontal, the ordering is top to bottom in the left part, and so on.
-In general, within each set of siblings at any level in the window tree,
-the order is left to right, or top to bottom.
-
- - Function: next-window &optional WINDOW MINIBUF ALL-FRAMES
-     This function returns the window following WINDOW in the cyclic
-     ordering of windows.  This is the window that `C-x o' would select
-     if typed when WINDOW is selected.  If WINDOW is the only window
-     visible, then this function returns WINDOW.  If omitted, WINDOW
-     defaults to the selected window.
-
-     The value of the argument MINIBUF determines whether the
-     minibuffer is included in the window order.  Normally, when
-     MINIBUF is `nil', the minibuffer is included if it is currently
-     active; this is the behavior of `C-x o'.  (The minibuffer window
-     is active while the minibuffer is in use.  *Note Minibuffers::.)
-
-     If MINIBUF is `t', then the cyclic ordering includes the
-     minibuffer window even if it is not active.
-
-     If MINIBUF is neither `t' nor `nil', then the minibuffer window is
-     not included even if it is active.
-
-     The argument ALL-FRAMES specifies which frames to consider.  Here
-     are the possible values and their meanings:
-
-    `nil'
-          Consider all the windows in WINDOW's frame, plus the
-          minibuffer used by that frame even if it lies in some other
-          frame.
-
-    `t'
-          Consider all windows in all existing frames.
-
-    `visible'
-          Consider all windows in all visible frames.  (To get useful
-          results, you must ensure WINDOW is in a visible frame.)
-
-    0
-          Consider all windows in all visible or iconified frames.
-
-    anything else
-          Consider precisely the windows in WINDOW's frame, and no
-          others.
-
-     This example assumes there are two windows, both displaying the
-     buffer `windows.texi':
-
-          (selected-window)
-               => #<window 56 on windows.texi>
-          (next-window (selected-window))
-               => #<window 52 on windows.texi>
-          (next-window (next-window (selected-window)))
-               => #<window 56 on windows.texi>
-
- - Function: previous-window &optional WINDOW MINIBUF ALL-FRAMES
-     This function returns the window preceding WINDOW in the cyclic
-     ordering of windows.  The other arguments specify which windows to
-     include in the cycle, as in `next-window'.
-
- - Command: other-window COUNT &optional FRAME
-     This function selects the COUNTth following window in the cyclic
-     order.  If count is negative, then it selects the -COUNTth
-     preceding window.  It returns `nil'.
-
-     In an interactive call, COUNT is the numeric prefix argument.
-
-     The argument FRAME controls which set of windows are considered.
-        * If it is `nil' or omitted, then windows on the selected frame
-          are considered.
-
-        * If it is a frame, then windows on that frame are considered.
-
-        * If it is `t', then windows on all frames that currently exist
-          (including invisible and iconified frames) are considered.
-
-        * If it is the symbol `visible', then windows on all visible
-          frames are considered.
-
-        * If it is the number 0, then windows on all visible and
-          iconified frames are considered.
-
-        * If it is any other value, then the behavior is undefined.
-
- - Function: walk-windows PROC &optional MINIBUF ALL-FRAMES
-     This function cycles through all windows, calling `proc' once for
-     each window with the window as its sole argument.
-
-     The optional arguments MINIBUF and ALL-FRAMES specify the set of
-     windows to include in the scan.  See `next-window', above, for
-     details.
-
-\1f
-File: lispref.info,  Node: Buffers and Windows,  Next: Displaying Buffers,  Prev: Cyclic Window Ordering,  Up: Windows
-
-Buffers and Windows
-===================
-
-   This section describes low-level functions to examine windows or to
-display buffers in windows in a precisely controlled fashion.  *Note
-Displaying Buffers::, for related functions that find a window to use
-and specify a buffer for it.  The functions described there are easier
-to use than these, but they employ heuristics in choosing or creating a
-window; use these functions when you need complete control.
-
- - Function: set-window-buffer WINDOW BUFFER-OR-NAME
-     This function makes WINDOW display BUFFER-OR-NAME as its contents.
-     It returns `nil'.
-
-          (set-window-buffer (selected-window) "foo")
-               => nil
-
- - Function: window-buffer &optional WINDOW
-     This function returns the buffer that WINDOW is displaying.  If
-     WINDOW is omitted, this function returns the buffer for the
-     selected window.
-
-          (window-buffer)
-               => #<buffer windows.texi>
-
- - Function: get-buffer-window BUFFER-OR-NAME &optional FRAME
-     This function returns a window currently displaying
-     BUFFER-OR-NAME, or `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.
-     *Note Cyclic Window Ordering::.
-
-     The argument ALL-FRAMES controls which windows to consider.
-
-        * If it is `nil', consider windows on the selected frame.
-
-        * If it is `t', consider windows on all frames.
-
-        * If it is `visible', consider windows on all visible frames.
-
-        * If it is 0, consider windows on all visible or iconified
-          frames.
-
-        * If it is a frame, consider windows on that frame.
-
-\1f
-File: lispref.info,  Node: Displaying Buffers,  Next: Choosing Window,  Prev: Buffers and Windows,  Up: Windows
-
-Displaying Buffers in Windows
-=============================
-
-   In this section we describe convenient functions that choose a window
-automatically and use it to display a specified buffer.  These functions
-can also split an existing window in certain circumstances.  We also
-describe variables that parameterize the heuristics used for choosing a
-window.  *Note Buffers and Windows::, for low-level functions that give
-you more precise control.
-
-   Do not use the functions in this section in order to make a buffer
-current so that a Lisp program can access or modify it; they are too
-drastic for that purpose, since they change the display of buffers in
-windows, which is gratuitous and will surprise the user.  Instead, use
-`set-buffer' (*note Current Buffer::.) and `save-excursion' (*note
-Excursions::.), which designate buffers as current for programmed
-access without affecting the display of buffers in windows.
-
- - Command: switch-to-buffer BUFFER-OR-NAME &optional NORECORD
-     This function makes BUFFER-OR-NAME the current buffer, and also
-     displays the buffer in the selected window.  This means that a
-     human can see the buffer and subsequent keyboard commands will
-     apply to it.  Contrast this with `set-buffer', which makes
-     BUFFER-OR-NAME the current buffer but does not display it in the
-     selected window.  *Note Current Buffer::.
-
-     If BUFFER-OR-NAME does not identify an existing buffer, then a new
-     buffer by that name is created.  The major mode for the new buffer
-     is set according to the variable `default-major-mode'.  *Note Auto
-     Major Mode::.
-
-     Normally the specified buffer is put at the front of the buffer
-     list.  This affects the operation of `other-buffer'.  However, if
-     NORECORD is non-`nil', this is not done.  *Note The Buffer List::.
-
-     The `switch-to-buffer' function is often used interactively, as
-     the binding of `C-x b'.  It is also used frequently in programs.
-     It always returns `nil'.
-
- - Command: switch-to-buffer-other-window BUFFER-OR-NAME
-     This function makes BUFFER-OR-NAME the current buffer and displays
-     it in a window not currently selected.  It then selects that
-     window.  The handling of the buffer is the same as in
-     `switch-to-buffer'.
-
-     The currently selected window is absolutely never used to do the
-     job.  If it is the only window, then it is split to make a
-     distinct window for this purpose.  If the selected window is
-     already displaying the buffer, then it continues to do so, but
-     another window is nonetheless found to display it in as well.
-
- - Function: pop-to-buffer BUFFER-OR-NAME &optional OTHER-WINDOW
-          ON-FRAME
-     This function makes BUFFER-OR-NAME the current buffer and switches
-     to it in some window, preferably not the window previously
-     selected.  The "popped-to" window becomes the selected window
-     within its frame.
-
-     If the variable `pop-up-frames' is non-`nil', `pop-to-buffer'
-     looks for a window in any visible frame already displaying the
-     buffer; if there is one, it returns that window and makes it be
-     selected within its frame.  If there is none, it creates a new
-     frame and displays the buffer in it.
-
-     If `pop-up-frames' is `nil', then `pop-to-buffer' operates
-     entirely within the selected frame.  (If the selected frame has
-     just a minibuffer, `pop-to-buffer' operates within the most
-     recently selected frame that was not just a minibuffer.)
-
-     If the variable `pop-up-windows' is non-`nil', windows may be
-     split to create a new window that is different from the original
-     window.  For details, see *Note Choosing Window::.
-
-     If OTHER-WINDOW is non-`nil', `pop-to-buffer' finds or creates
-     another window even if BUFFER-OR-NAME is already visible in the
-     selected window.  Thus BUFFER-OR-NAME could end up displayed in
-     two windows.  On the other hand, if BUFFER-OR-NAME is already
-     displayed in the selected window and OTHER-WINDOW is `nil', then
-     the selected window is considered sufficient display for
-     BUFFER-OR-NAME, so that nothing needs to be done.
-
-     All the variables that affect `display-buffer' affect
-     `pop-to-buffer' as well.  *Note Choosing Window::.
-
-     If BUFFER-OR-NAME is a string that does not name an existing
-     buffer, a buffer by that name is created.  The major mode for the
-     new buffer is set according to the variable `default-major-mode'.
-     *Note Auto Major Mode::.
-
-     If ON-FRAME is non-`nil', it is the frame to pop to this buffer on.
-
-     An example use of this function is found at the end of *Note
-     Filter Functions::.
-
- - Command: replace-buffer-in-windows BUFFER
-     This function replaces BUFFER with some other buffer in all
-     windows displaying it.  The other buffer used is chosen with
-     `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 BUFFER is no longer displayed.
-
-     This function returns `nil'.
-
-\1f
-File: lispref.info,  Node: Choosing Window,  Next: Window Point,  Prev: Displaying Buffers,  Up: Windows
-
-Choosing a Window for Display
-=============================
-
-   This section describes the basic facility that chooses a window to
-display a buffer in--`display-buffer'.  All the higher-level functions
-and commands use this subroutine.  Here we describe how to use
-`display-buffer' and how to customize it.
-
- - Command: display-buffer BUFFER-OR-NAME &optional NOT-THIS-WINDOW
-     This command makes BUFFER-OR-NAME appear in some window, like
-     `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.
-
-     If NOT-THIS-WINDOW is non-`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 appear in two windows at once.  Otherwise, if
-     BUFFER-OR-NAME is already being displayed in any window, that is
-     good enough, so this function does nothing.
-
-     `display-buffer' returns the window chosen to display
-     BUFFER-OR-NAME.
-
-     Precisely how `display-buffer' finds or creates a window depends on
-     the variables described below.
-
-   A window can be marked as "dedicated" to a particular buffer.  Then
-XEmacs will not automatically change which buffer appears in the
-window, such as `display-buffer' might normally do.
-
- - Function: window-dedicated-p WINDOW
-     This function returns WINDOW's dedicated object, usually `t' or
-     `nil'.
-
- - Function: set-window-buffer-dedicated WINDOW BUFFER
-     This function makes WINDOW display BUFFER and be dedicated to that
-     buffer.  Then XEmacs will not automatically change which buffer
-     appears in WINDOW.  If BUFFER is `nil', this function makes WINDOW
-     not be dedicated (but doesn't change which buffer appears in it
-     currently).
-
- - User Option: pop-up-windows
-     This variable controls whether `display-buffer' makes new windows.
-     If it is non-`nil' and there is only one window, then that window
-     is split.  If it is `nil', then `display-buffer' does not split
-     the single window, but uses it whole.
-
- - User Option: split-height-threshold
-     This variable determines when `display-buffer' may split a window,
-     if there are multiple windows.  `display-buffer' always splits the
-     largest window if it has at least this many lines.  If the largest
-     window is not this tall, it is split only if it is the sole window
-     and `pop-up-windows' is non-`nil'.
-
- - User Option: pop-up-frames
-     This variable controls whether `display-buffer' makes new frames.
-     If it is non-`nil', `display-buffer' looks for an existing window
-     already displaying the desired buffer, on any visible frame.  If
-     it finds one, it returns that window.  Otherwise it makes a new
-     frame.  The variables `pop-up-windows' and
-     `split-height-threshold' do not matter if `pop-up-frames' is
-     non-`nil'.
-
-     If `pop-up-frames' is `nil', then `display-buffer' either splits a
-     window or reuses one.
-
-     *Note Frames::, for more information.
-
- - Variable: pop-up-frame-function
-     This variable specifies how to make a new frame if `pop-up-frames'
-     is non-`nil'.
-
-     Its value should be a function of no arguments.  When
-     `display-buffer' makes a new frame, it does so by calling that
-     function, which should return a frame.  The default value of the
-     variable is a function that creates a frame using properties from
-     `pop-up-frame-plist'.
-
- - Variable: pop-up-frame-plist
-     This variable holds a plist specifying frame properties used when
-     `display-buffer' makes a new frame.  *Note Frame Properties::, for
-     more information about frame properties.
-
- - Variable: special-display-buffer-names
-     A list of buffer names for buffers that should be displayed
-     specially.  If the buffer's name is in this list, `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 CAR of the
-     list is the buffer name, and the rest of the list says how to
-     create the frame.  There are two possibilities for the rest of the
-     list.  It can be a plist, specifying frame properties, 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.)
-
- - Variable: special-display-regexps
-     A list of regular expressions that specify buffers that should be
-     displayed specially.  If the buffer's name matches any of the
-     regular expressions in this list, `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 CAR of the
-     list is the regular expression, and the rest of the list says how
-     to create the frame.  See above, under
-     `special-display-buffer-names'.
-
- - Variable: 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
-     `special-display-popup-frame'.
-
- - Function: special-display-popup-frame BUFFER
-     This function makes BUFFER visible in a frame of its own.  If
-     BUFFER is already displayed in a window in some frame, it makes
-     the frame visible and raises it, to use that window.  Otherwise, it
-     creates a frame that will be dedicated to BUFFER.
-
-     This function uses an existing window displaying 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 BUFFER was created, then
-     presumably the window was previously made by this function.
-
- - User Option: special-display-frame-plist
-     This variable holds frame properties for
-     `special-display-popup-frame' to use when it creates a frame.
-
- - Variable: same-window-buffer-names
-     A list of buffer names for buffers that should be displayed in the
-     selected window.  If the buffer's name is in this list,
-     `display-buffer' handles the buffer by switching to it in the
-     selected window.
-
- - Variable: same-window-regexps
-     A list of regular expressions that specify buffers that should be
-     displayed in the selected window.  If the buffer's name matches
-     any of the regular expressions in this list, `display-buffer'
-     handles the buffer by switching to it in the selected window.
-
- - Variable: display-buffer-function
-     This variable is the most flexible way to customize the behavior of
-     `display-buffer'.  If it is non-`nil', it should be a function
-     that `display-buffer' calls to do the work.  The function should
-     accept two arguments, the same two arguments that `display-buffer'
-     received.  It should choose or create a window, display the
-     specified buffer, and then return the window.
-
-     This hook takes precedence over all the other options and hooks
-     described above.
-
-   A window can be marked as "dedicated" to its buffer.  Then
-`display-buffer' does not try to use that window.
-
- - Function: window-dedicated-p WINDOW
-     This function returns `t' if WINDOW is marked as dedicated;
-     otherwise `nil'.
-
- - Function: set-window-dedicated-p WINDOW FLAG
-     This function marks WINDOW as dedicated if FLAG is non-`nil', and
-     nondedicated otherwise.
-