(C3-272A): Unify U-0002F98F; relate to M-30681.
[chise/xemacs-chise.git] / info / xemacs.info-8
index 5b6078b..81ad49c 100644 (file)
@@ -1,5 +1,5 @@
-This is Info file ../../info/xemacs.info, produced by Makeinfo version
-1.68 from the input file xemacs.texi.
+This is ../info/xemacs.info, produced by makeinfo version 4.0b from
+xemacs/xemacs.texi.
 
 INFO-DIR-SECTION XEmacs Editor
 START-INFO-DIR-ENTRY
 
 INFO-DIR-SECTION XEmacs Editor
 START-INFO-DIR-ENTRY
@@ -30,1039 +30,1057 @@ versions, except that the sections entitled "The GNU Manifesto",
 translation approved by the author instead of in the original English.
 
 \1f
 translation approved by the author instead of in the original English.
 
 \1f
-File: xemacs.info,  Node: Dired Immed,  Prev: Dired Deletion,  Up: Dired
+File: xemacs.info,  Node: Backup Deletion,  Next: Backup Copying,  Prev: Backup Names,  Up: Backup
 
 
-Immediate File Operations in Dired
-----------------------------------
+Automatic Deletion of Backups
+.............................
 
 
-   Some file operations in Dired take place immediately when they are
-requested.
+   To prevent unlimited consumption of disk space, Emacs can delete
+numbered backup versions automatically.  Generally Emacs keeps the
+first few backups and the latest few backups, deleting any in between.
+This happens every time a new backup is made.  The two variables that
+control the deletion are `kept-old-versions' and `kept-new-versions'.
+Their values are, respectively the number of oldest (lowest-numbered)
+backups to keep and the number of newest (highest-numbered) ones to
+keep, each time a new backup is made.  The values are used just after a
+new backup version is made; that newly made backup is included in the
+count in `kept-new-versions'.  By default, both variables are 2.
 
 
-`C'
-     Copies the file described on the current line.  You must supply a
-     file name to copy to, using the minibuffer.
+   If `delete-old-versions' is non-`nil',  excess middle versions are
+deleted without notification.  If it is `nil', the default, you are
+asked whether the excess middle versions should really be deleted.
 
 
-`f'
-     Visits the file described on the current line.  It is just like
-     typing `C-x C-f' and supplying that file name.  If the file on
-     this line is a subdirectory, `f' actually causes Dired to be
-     invoked on that subdirectory.  *Note Visiting::.
+   You can also use Dired's `.' (Period) command to delete old versions.
+*Note Dired::.
 
 
-`o'
-     Like `f', but uses another window to display the file's buffer.
-     The Dired buffer remains visible in the first window.  This is
-     like using `C-x 4 C-f' to visit the file.  *Note Windows::.
+\1f
+File: xemacs.info,  Node: Backup Copying,  Prev: Backup Deletion,  Up: Backup
+
+Copying vs. Renaming
+....................
+
+   You can make backup files by copying the old file or by renaming it.
+This makes a difference when the old file has multiple names.  If you
+rename the old file into the backup file, the alternate names become
+names for the backup file.  If you copy the old file instead, the
+alternate names remain names for the file that you are editing, and the
+contents accessed by those names will be the new contents.
+
+   How you make a backup file may also affect the file's owner and
+group.  If you use copying, they do not change.  If renaming is used,
+you become the file's owner, and the file's group becomes the default
+(different operating systems have different defaults for the group).
+
+   Having the owner change is usually a good idea, because then the
+owner is always the person who last edited the file.  Occasionally
+there is a file whose owner should not change.  Since most files should
+change owners, it is a good idea to use local variable lists to set
+`backup-by-copying-when-mismatch' for the special cases where the owner
+should not change (*note File Variables::).
+
+   Three variables control the choice of renaming or copying.
+Normally, renaming is done.  If the variable `backup-by-copying' is
+non-`nil', copying is used.  Otherwise, if the variable
+`backup-by-copying-when-linked' is non-`nil', copying is done for files
+that have multiple names, but renaming may still be done when the file
+being edited has only one name.  If the variable
+`backup-by-copying-when-mismatch' is non-`nil', copying is done if
+renaming would cause the file's owner or group to change.
+
+\1f
+File: xemacs.info,  Node: Interlocking,  Prev: Backup,  Up: Saving
+
+Protection Against Simultaneous Editing
+---------------------------------------
+
+   Simultaneous editing occurs when two users visit the same file, both
+make changes, and both save their changes.  If no one was informed that
+this was happening, and you saved first, you would later find that your
+changes were lost.  On some systems, Emacs notices immediately when the
+second user starts to change a file already being edited, and issues a
+warning.  When this is not possible, or if the second user has started
+to change the file despite the warning, Emacs checks when the file is
+saved, and issues a second warning when a user is about to overwrite a
+file containing another user's changes.  If you are the user editing the
+file, you can take corrective action at this point and prevent actual
+loss of work.
+
+   When you make the first modification in an Emacs buffer that is
+visiting a file, Emacs records that you have locked the file.  (It does
+this by writing another file in a directory reserved for this purpose.)
+The lock is removed when you save the changes.  The idea is that the
+file is locked whenever the buffer is modified.  If you begin to modify
+the buffer while the visited file is locked by someone else, this
+constitutes a collision, and Emacs asks you what to do.  It does this
+by calling the Lisp function `ask-user-about-lock', which you can
+redefine to customize what it does.  The standard definition of this
+function asks you a question and accepts three possible answers:
 
 
-`R'
-     Renames the file described on the current line.  You must supply a
-     file name to rename to, using the minibuffer.
+`s'
+     Steal the lock.  Whoever was already changing the file loses the
+     lock, and you get the lock.
+
+`p'
+     Proceed.  Go ahead and edit the file despite its being locked by
+     someone else.
 
 
-`v'
-     Views the file described on this line using `M-x view-file'.
-     Viewing a file is like visiting it, but is slanted toward moving
-     around in the file conveniently and does not allow changing the
-     file.  *Note View File: Misc File Ops.  Viewing a file that is a
-     directory runs Dired on that directory.
+`q'
+     Quit.  This causes an error (`file-locked') and the modification
+     you were trying to make in the buffer does not actually take place.
+
+   Note that locking works on the basis of a file name; if a file has
+multiple names, Emacs does not realize that the two names are the same
+file and cannot prevent two users from editing it simultaneously under
+different names.  However, basing locking on names means that Emacs can
+interlock the editing of new files that do not really exist until they
+are saved.
+
+   Some systems are not configured to allow Emacs to make locks.  On
+these systems, Emacs cannot detect trouble in advance, but it can still
+detect it in time to prevent you from overwriting someone else's
+changes.
+
+   Every time Emacs saves a buffer, it first checks the
+last-modification date of the existing file on disk to see that it has
+not changed since the file was last visited or saved.  If the date does
+not match, it implies that changes were made in the file in some other
+way, and these changes are about to be lost if Emacs actually does
+save.  To prevent this, Emacs prints a warning message and asks for
+confirmation before saving.  Occasionally you will know why the file
+was changed and know that it does not matter; then you can answer `yes'
+and proceed.  Otherwise, you should cancel the save with `C-g' and
+investigate the situation.
+
+   The first thing you should do when notified that simultaneous editing
+has already taken place is to list the directory with `C-u C-x C-d'
+(*note Directory Listing: ListDir.).  This will show the file's current
+author.  You should attempt to contact that person and ask him not to
+continue editing.  Often the next step is to save the contents of your
+Emacs buffer under a different name, and use `diff' to compare the two
+files.
+
+   Simultaneous editing checks are also made when you visit a file that
+is already visited with `C-x C-f' and when you start to modify a file.
+This is not strictly necessary, but it is useful to find out about such
+a problem as early as possible, when corrective action takes less work.
+
+   Another way to protect your file is to set the read, write, and
+executable permissions for the file. Use the function
+`set-default-file-modes' to set the UNIX `umask' value to the NMASK
+argument. The `umask' value is the default protection mode for new
+files.
 
 \1f
 
 \1f
-File: xemacs.info,  Node: Misc File Ops,  Prev: Dired,  Up: Files
-
-Miscellaneous File Operations
-=============================
-
-   Emacs has commands for performing many other operations on files.
-All operate on one file; they do not accept wildcard file names.
-
-   You can use the command `M-x add-name-to-file' to add a name to an
-existing file without removing the old name.  The new name must belong
-on the file system that the file is on.
-
-   `M-x append-to-file' adds the text of the region to the end of the
-specified file.
-
-   `M-x copy-file' reads the file OLD and writes a new file named NEW
-with the same contents.  Confirmation is required if a file named NEW
-already exists, because copying overwrites the old contents of the file
-NEW.
-
-   `M-x delete-file' deletes a specified file, like the `rm' command in
-the shell.  If you are deleting many files in one directory, it may be
-more convenient to use Dired (*note Dired::.).
-
-   `M-x insert-file' inserts a copy of the contents of a specified file
-into the current buffer at point, leaving point unchanged before the
-contents and the mark after them.  *Note Mark::.
-
-   `M-x make-symbolic-link' reads two file names OLD and LINKNAME, and
-then creates a symbolic link named LINKNAME and pointing at OLD.
-Future attempts to open file LINKNAME will then refer to the file named
-OLD at the time the opening is done, or will result in an error if the
-name OLD is not in use at that time.  Confirmation is required if you
-create the link while LINKNAME is in use.  Note that not all systems
-support symbolic links.
-
-   `M-x rename-file' reads two file names OLD and NEW using the
-minibuffer, then renames file OLD as NEW.  If a file named NEW already
-exists, you must confirm with `yes' or renaming is not done; this is
-because renaming causes the previous meaning of the name NEW to be
-lost.  If OLD and NEW are on different file systems, the file OLD is
-copied and deleted.
-
-   `M-x view-file' allows you to scan or read a file by sequential
-screenfuls.  It reads a file name argument using the minibuffer.  After
-reading the file into an Emacs buffer, `view-file' reads and displays
-one windowful.  You can then type <SPC> to scroll forward one window,
-or <DEL> to scroll backward.  Various other commands are provided for
-moving around in the file, but none for changing it; type `C-h' while
-viewing a file for a list of them.  Most commands are the default Emacs
-cursor motion commands.  To exit from viewing, type `C-c'.
+File: xemacs.info,  Node: Reverting,  Next: Auto Save,  Prev: Saving,  Up: Files
+
+Reverting a Buffer
+==================
+
+   If you have made extensive changes to a file and then change your
+mind about them, you can get rid of all changes by reading in the
+previous version of the file.  To do this, use `M-x revert-buffer',
+which operates on the current buffer.  Since reverting a buffer can
+result in very extensive changes, you must confirm it with `yes'.
+
+   If the current buffer has been auto-saved more recently than it has
+been saved explicitly, `revert-buffer' offers to read the auto save file
+instead of the visited file (*note Auto Save::).  Emacs asks you about
+the auto-save file before the request for confirmation of the
+`revert-buffer' operation, and demands `y' or `n' as an answer.  If you
+have started to type `yes' for confirmation without realizing that the
+auto-save question was going to be asked, the `y' will answer that
+question, but the `es' will not be valid confirmation.  This gives you
+a chance to cancel the operation with `C-g' and try again with the
+answers you really intend.
+
+   `revert-buffer' keeps point at the same distance (measured in
+characters) from the beginning of the file.  If the file was edited only
+slightly, you will be at approximately the same piece of text after
+reverting as before.  If you have made more extensive changes, the
+value of point in the old file may bring you to a totally different
+piece of text than your last editing point.
+
+   A buffer reverted from its visited file is marked "not modified"
+until you make a change.
+
+   Some kinds of buffers whose contents reflect data bases other than
+files, such as Dired buffers, can also be reverted.  For them,
+reverting means recalculating their contents from the appropriate data.
+Buffers created randomly with `C-x b' cannot be reverted;
+`revert-buffer' reports an error when asked to do so.
 
 \1f
 
 \1f
-File: xemacs.info,  Node: Buffers,  Next: Windows,  Prev: Files,  Up: Top
-
-Using Multiple Buffers
-**********************
-
-   Text you are editing in Emacs resides in an object called a
-"buffer".  Each time you visit a file, Emacs creates a buffer to hold
-the file's text.  Each time you invoke Dired, Emacs creates a buffer to
-hold the directory listing.  If you send a message with `C-x m', a
-buffer named `*mail*' is used to hold the text of the message.  When
-you ask for a command's documentation, it appears in a buffer called
-`*Help*'.
-
-   At any time, one and only one buffer is "selected".  It is also
-called the "current buffer".  Saying a command operates on "the buffer"
-really means that the command operates on the selected buffer, as most
-commands do.
-
-   When Emacs creates multiple windows, each window has a chosen buffer
-which is displayed there, but at any time only one of the windows is
-selected and its chosen buffer is the selected buffer.  Each window's
-mode line displays the name of the buffer the window is displaying
-(*note Windows::.).
-
-   Each buffer has a name which can be of any length but is
-case-sensitive.  You can select a buffer using its name.  Most buffers
-are created when you visit files; their names are derived from the
-files' names.  You can also create an empty buffer with any name you
-want.  A newly started Emacs has a buffer named `*scratch*' which you
-can use for evaluating Lisp expressions in Emacs.
-
-   Each buffer records what file it is visiting, whether it is
-modified, and what major mode and minor modes are in effect in it
-(*note Major Modes::.).  Any Emacs variable can be made "local to" a
-particular buffer, meaning its value in that buffer can be different
-from the value in other buffers.  *Note Locals::.
+File: xemacs.info,  Node: Auto Save,  Next: Version Control,  Prev: Reverting,  Up: Files
 
 
-* Menu:
+Auto-Saving: Protection Against Disasters
+=========================================
 
 
-* Select Buffer::   Creating a new buffer or reselecting an old one.
-* List Buffers::    Getting a list of buffers that exist.
-* Misc Buffer::     Renaming; changing read-onliness; copying text.
-* Kill Buffer::     Killing buffers you no longer need.
-* Several Buffers:: How to go through the list of all buffers
-                     and operate variously on several of them.
+   Emacs saves all the visited files from time to time (based on
+counting your keystrokes) without being asked.  This is called
+"auto-saving".  It prevents you from losing more than a limited amount
+of work if the system crashes.
 
 
-\1f
-File: xemacs.info,  Node: Select Buffer,  Next: List Buffers,  Prev: Buffers,  Up: Buffers
+   When Emacs determines it is time for auto-saving, each buffer is
+considered and is auto-saved if auto-saving is turned on for it and it
+has changed since the last time it was auto-saved.  If any auto-saving
+is done, the message `Auto-saving...' is displayed in the echo area
+until auto-saving is finished.  Errors occurring during auto-saving are
+caught so that they do not interfere with the execution of commands you
+have been typing.
+
+* Menu:
 
 
-Creating and Selecting Buffers
-==============================
+* Files: Auto Save Files.
+* Control: Auto Save Control.
+* Recover::            Recovering text from auto-save files.
 
 
-`C-x b BUFFER <RET>'
-     Select or create a buffer named BUFFER (`switch-to-buffer').
+\1f
+File: xemacs.info,  Node: Auto Save Files,  Next: Auto Save Control,  Prev: Auto Save,  Up: Auto Save
+
+Auto-Save Files
+---------------
+
+   Auto-saving does not normally write to the files you visited, because
+it can be undesirable to save a program that is in an inconsistent
+state when you have made only half of a planned change.  Instead,
+auto-saving is done in a different file called the "auto-save file",
+and the visited file is changed only when you save explicitly, for
+example, with `C-x C-s'.
+
+   Normally, the name of the auto-save file is generated by appending
+`#' to the front and back of the visited file name.  Thus, a buffer
+visiting file `foo.c' would be auto-saved in a file `#foo.c#'.  Most
+buffers that are not visiting files are auto-saved only if you request
+it explicitly; when they are auto-saved, the auto-save file name is
+generated by appending `#%' to the front and `#' to the back of buffer
+name.  For example, the `*mail*' buffer in which you compose messages
+to be sent is auto-saved in a file named `#%*mail*#'.  Names of
+auto-save files are generated this way unless you customize the
+functions `make-auto-save-file-name' and `auto-save-file-name-p' to do
+something different.  The file name to be used for auto-saving a buffer
+is calculated at the time auto-saving is turned on in that buffer.
+
+   If you want auto-saving to be done in the visited file, set the
+variable `auto-save-visited-file-name' to be non-`nil'.  In this mode,
+there is really no difference between auto-saving and explicit saving.
+
+   Emacs deletes a buffer's auto-save file when you explicitly save the
+buffer.  To inhibit the deletion, set the variable
+`delete-auto-save-files' to `nil'.  Changing the visited file name with
+`C-x C-w' or `set-visited-file-name' renames any auto-save file to
+correspond to the new visited name.
 
 
-`C-x 4 b BUFFER <RET>'
-     Similar, but select a buffer named BUFFER in another window
-     (`switch-to-buffer-other-window').
+\1f
+File: xemacs.info,  Node: Auto Save Control,  Next: Recover,  Prev: Auto Save Files,  Up: Auto Save
+
+Controlling Auto-Saving
+-----------------------
+
+   Each time you visit a file, auto-saving is turned on for that file's
+buffer if the variable `auto-save-default' is non-`nil' (but not in
+batch mode; *note Entering Emacs::).  The default for this variable is
+`t', so Emacs auto-saves buffers that visit files by default.  You can
+use the command `M-x auto-save-mode' to turn auto-saving for a buffer
+on or off.  Like other minor mode commands, `M-x auto-save-mode' turns
+auto-saving on with a positive argument, off with a zero or negative
+argument; with no argument, it toggles.
+
+   Emacs performs auto-saving periodically based on counting how many
+characters you have typed since the last time auto-saving happened.  The
+variable `auto-save-interval' specifies the number of characters
+between auto-saves.  By default, it is 300.  Emacs also auto-saves
+whenever you call the function `do-auto-save'.
+
+   Emacs also does auto-saving whenever it gets a fatal error.  This
+includes killing the Emacs job with a shell command such as `kill
+-emacs', or disconnecting a phone line or network connection.
+
+   You can set the number of seconds of idle time before an auto-save is
+done. Setting the value of the variable `auto-save-timeout' to zero or
+`nil' will  disable auto-saving due to idleness.
+
+   The actual amount of idle time between auto-saves is logarithmically
+related to the size of the current buffer.  This variable is the number
+of seconds after which an auto-save will happen when the current buffer
+is 50k or less; the timeout will be 2 1/4 times this in a 200k buffer, 3
+3/4 times this in a 1000k buffer, and 4 1/2 times this in a 2000k
+buffer.
+
+   For this variable to have any effect, you must do `(require 'timer)'.
 
 
-`M-x switch-to-other-buffer N'
-     Switch to the previous buffer.
+\1f
+File: xemacs.info,  Node: Recover,  Prev: Auto Save Control,  Up: Auto Save
 
 
-   To select a buffer named BUFNAME, type `C-x b BUFNAME <RET>'.  This
-is the command `switch-to-buffer' with argument BUFNAME.  You can use
-completion on an abbreviation for the buffer name you want (*note
-Completion::.).  An empty argument to `C-x b' specifies the most
-recently selected buffer that is not displayed in any window.
+Recovering Data from Auto-Saves
+-------------------------------
 
 
-   Most buffers are created when you visit files, or use Emacs commands
-that display text.  You can also create a buffer explicitly by typing
-`C-x b BUFNAME <RET>', which creates a new, empty buffer that is not
-visiting any file, and selects it for editing.  The new buffer's major
-mode is determined by the value of `default-major-mode' (*note Major
-Modes::.).  Buffers not visiting files are usually used for making
-notes to yourself.  If you try to save one, you are asked for the file
-name to use.
+   If you want to use the contents of an auto-save file to recover from
+a loss of data, use the command `M-x recover-file <RET> FILE <RET>'.
+Emacs visits FILE and then (after your confirmation) restores the
+contents from the auto-save file `#FILE#'.  You can then save the file
+with `C-x C-s' to put the recovered text into FILE itself.  For
+example, to recover file `foo.c' from its auto-save file `#foo.c#', do:
 
 
-   The function `switch-to-buffer-other-frame' is similar to
-`switch-to-buffer' except that it creates a new frame in which to
-display the selected buffer.
+     M-x recover-file <RET> foo.c <RET>
+     C-x C-s
 
 
-   Use `M-x switch-to-other-buffer' to visit the previous buffer. If
-you supply a positive integer N, the Nth most recent buffer is
-displayed. If you supply an argument of 0, the current buffer is moved
-to the bottom of the buffer stack.
+   Before asking for confirmation, `M-x recover-file' displays a
+directory listing describing the specified file and the auto-save file,
+so you can compare their sizes and dates.  If the auto-save file is
+older, `M-x recover-file' does not offer to read it.
 
 
-   Note that you can also use `C-x C-f' and any other command for
-visiting a file to switch buffers.  *Note Visiting::.
+   Auto-saving is disabled by `M-x recover-file' because using this
+command implies that the auto-save file contains valuable data from a
+past session.  If you save the data in the visited file and then go on
+to make new changes, turn auto-saving back on with `M-x auto-save-mode'.
 
 \1f
 
 \1f
-File: xemacs.info,  Node: List Buffers,  Next: Misc Buffer,  Prev: Select Buffer,  Up: Buffers
+File: xemacs.info,  Node: Version Control,  Next: ListDir,  Prev: Auto Save,  Up: Files
 
 
-Listing Existing Buffers
-========================
+Version Control
+===============
 
 
-`C-x C-b'
-     List the existing buffers (`list-buffers').
-
-   To print a list of all existing buffers, type `C-x C-b'.  Each line
-in the list shows one buffer's name, major mode, and visited file.  A
-`*' at the beginning of a line indicates the buffer has been
-"modified".  If several buffers are modified, it may be time to save
-some with `C-x s' (*note Saving::.).  A `%' indicates a read-only
-buffer.  A `.' marks the selected buffer.  Here is an example of a
-buffer list:
-
-      MR Buffer         Size  Mode           File
-      -- ------         ----  ----           ----
-     .*  emacs.tex      383402 Texinfo       /u2/emacs/man/emacs.tex
-         *Help*         1287  Fundamental
-         files.el       23076 Emacs-Lisp     /u2/emacs/lisp/files.el
-       % RMAIL          64042 RMAIL          /u/rms/RMAIL
-      *% man            747   Dired            /u2/emacs/man/
-         net.emacs      343885 Fundamental   /u/rms/net.emacs
-         fileio.c       27691 C              /u2/emacs/src/fileio.c
-         NEWS           67340 Text           /u2/emacs/etc/NEWS
-         *scratch*        0     Lisp Interaction
-
-Note that the buffer `*Help*' was made by a help request; it is not
-visiting any file.  The buffer `man' was made by Dired on the directory
-`/u2/emacs/man/'.
-
-   As you move the mouse over the `*Buffer List*' buffer, the lines are
-highlighted.  This visual cue indicates that clicking the right mouse
-button (`button3') will pop up a menu of commands on the buffer
-represented by this line.  This menu duplicates most of those commands
-which are bound to keys in the `*Buffer List*' buffer.
+   "Version control systems" are packages that can record multiple
+versions of a source file, usually storing the unchanged parts of the
+file just once.  Version control systems also record history information
+such as the creation time of each version, who created it, and a
+description of what was changed in that version.
 
 
-\1f
-File: xemacs.info,  Node: Misc Buffer,  Next: Kill Buffer,  Prev: List Buffers,  Up: Buffers
+   The GNU project recommends the version control system known as RCS,
+which is free software and available from the Free Software Foundation.
+Emacs supports use of either RCS or SCCS (a proprietary, but widely
+used, version control system that is not quite as powerful as RCS)
+through a facility called VC.  The same Emacs commands work with either
+RCS or SCCS, so you hardly have to know which one of them you are using.
 
 
-Miscellaneous Buffer Operations
-===============================
+* Menu:
 
 
-`C-x C-q'
-     Toggle read-only status of buffer (`toggle-read-only').
-
-`M-x rename-buffer'
-     Change the name of the current buffer.
-
-`M-x view-buffer'
-     Scroll through a buffer.
-
-   A buffer can be "read-only", which means that commands to change its
-text are not allowed.  Normally, read-only buffers are created by
-subsystems such as Dired and Rmail that have special commands to operate
-on the text.  Emacs also creates a read-only buffer if you visit a file
-that is protected.  To make changes in a read-only buffer, use the
-command `C-x C-q' (`toggle-read-only').  It makes a read-only buffer
-writable, and makes a writable buffer read-only.  This works by setting
-the variable `buffer-read-only', which has a local value in each buffer
-and makes a buffer read-only if its value is non-`nil'.
-
-   `M-x rename-buffer' changes the name of the current buffer,
-prompting for the new name in the minibuffer.  There is no default.  If
-you specify a name that is used by a different buffer, an error is
-signalled and renaming is not done.
-
-   `M-x view-buffer' is similar to `M-x view-file' (*note Misc File
-Ops::.), but it examines an already existing Emacs buffer.  View mode
-provides convenient commands for scrolling through the buffer but not
-for changing it.  When you exit View mode, the resulting value of point
-remains in effect.
-
-   To copy text from one buffer to another, use the commands `M-x
-append-to-buffer' and `M-x insert-buffer'.  *Note Accumulating Text::.
+* Concepts of VC::              Basic version control information;
+                                  checking files in and out.
+* Editing with VC::             Commands for editing a file maintained
+                                  with version control.
+* Variables for Check-in/out::  Variables that affect the commands used
+                                  to check files in or out.
+* Log Entries::                 Logging your changes.
+* Change Logs and VC::          Generating a change log file from log
+                                  entries.
+* Old Versions::                Examining and comparing old versions.
+* VC Status::                   Commands to view the VC status of files and
+                                  look at log entries.
+* Renaming and VC::             A command to rename both the source and
+                                  master file correctly.
+* Snapshots::                   How to make and use snapshots, a set of
+                                  file versions that can be treated as a unit.
+* Version Headers::             Inserting version control headers into
+                                  working files.
 
 \1f
 
 \1f
-File: xemacs.info,  Node: Kill Buffer,  Next: Several Buffers,  Prev: Misc Buffer,  Up: Buffers
+File: xemacs.info,  Node: Concepts of VC,  Next: Editing with VC,  Prev: Version Control,  Up: Version Control
 
 
-Killing Buffers
-===============
+Concepts of Version Control
+---------------------------
+
+   When a file is under version control, we also say that it is
+"registered" in the version control system.  Each registered file has a
+corresponding "master file" which represents the file's present state
+plus its change history, so that you can reconstruct from it either the
+current version or any specified earlier version.  Usually the master
+file also records a "log entry" for each version describing what was
+changed in that version.
 
 
-   After using Emacs for a while, you may accumulate a large number of
-buffers and may want to eliminate the ones you no longer need.  There
-are several commands for doing this.
+   The file that is maintained under version control is sometimes called
+the "work file" corresponding to its master file.
 
 
-`C-x k'
-     Kill a buffer, specified by name (`kill-buffer').
+   To examine a file, you "check it out".  This extracts a version of
+the source file (typically, the most recent) from the master file.  If
+you want to edit the file, you must check it out "locked".  Only one
+user can do this at a time for any given source file.  (This kind of
+locking is completely unrelated to the locking that Emacs uses to
+detect simultaneous editing of a file.)
 
 
-`M-x kill-some-buffers'
-     Offer to kill each buffer, one by one.
+   When you are done with your editing, you must "check in" the new
+version.  This records the new version in the master file, and unlocks
+the source file so that other people can lock it and thus modify it.
 
 
-   `C-x k' (`kill-buffer') kills one buffer, whose name you specify in
-the minibuffer.  If you type just <RET> in the minibuffer, the default,
-killing the current buffer, is used.  If the current buffer is killed,
-the buffer that has been selected recently but does not appear in any
-window now is selected.  If the buffer being killed contains unsaved
-changes, you are asked to confirm with `yes' before the buffer is
-killed.
+   Checkin and checkout are the basic operations of version control.
+You can do both of them with a single Emacs command: `C-x C-q'
+(`vc-toggle-read-only').
 
 
-   The command `M-x kill-some-buffers' asks about each buffer, one by
-one.  An answer of `y' means to kill the buffer.  Killing the current
-buffer or a buffer containing unsaved changes selects a new buffer or
-asks for confirmation just like `kill-buffer'.
+   A "snapshot" is a coherent collection of versions of the various
+files that make up a program.  *Note Snapshots::.
 
 \1f
 
 \1f
-File: xemacs.info,  Node: Several Buffers,  Prev: Kill Buffer,  Up: Buffers
+File: xemacs.info,  Node: Editing with VC,  Next: Variables for Check-in/out,  Prev: Concepts of VC,  Up: Version Control
 
 
-Operating on Several Buffers
-============================
+Editing with Version Control
+----------------------------
 
 
-   The "buffer-menu" facility is like a "Dired for buffers"; it allows
-you to request operations on various Emacs buffers by editing a buffer
-containing a list of them.  You can save buffers, kill them (here
-called "deleting" them, for consistency with Dired), or display them.
+   When you visit a file that is maintained using version control, the
+mode line displays `RCS' or `SCCS' to inform you that version control
+is in use, and also (in case you care) which low-level system the file
+is actually stored in.  Normally, such a source file is read-only, and
+the mode line indicates this with `%%'.  With RCS, the mode line also
+indicates the number of the head version, which is normally also the
+version you are looking at.
 
 
-`M-x buffer-menu'
-     Begin editing a buffer listing all Emacs buffers.
+   These are the commands for editing a file maintained with version
+control:
 
 
-   The command `buffer-menu' writes a list of all Emacs buffers into
-the buffer `*Buffer List*', and selects that buffer in Buffer Menu
-mode.  The buffer is read-only.  You can only change it using the
-special commands described in this section.  Most of the commands are
-graphic characters.  You can use  Emacs cursor motion commands in the
-`*Buffer List*' buffer.  If the cursor is on a line describing a
-buffer, the following  special commands apply to that buffer:
+`C-x C-q'
+     Check the visited file in or out.
+
+`C-x v u'
+     Revert the buffer and the file to the last checked in version.
+
+`C-x v c'
+     Remove the last-entered change from the master for the visited
+     file.  This undoes your last check-in.
+
+`C-x v i'
+     Register the visited file in version control.
+
+(`C-x v' is the prefix key for version control commands; all of these
+commands except for `C-x C-q' start with `C-x v'.)
+
+   When you want to modify a file maintained with version control, type
+`C-x C-q' (`vc-toggle-read-only').  This "checks out" the file, and
+tells RCS or SCCS to lock the file.  This means making the file
+writable for you (but not for anyone else).
+
+   When you are finished editing the file, type `C-x C-q' again.  When
+used on a file that is checked out, this command checks the file in.
+But check-in does not start immediately; first, you must enter the "log
+entry"--a description of the changes in the new version.  `C-x C-q'
+pops up a buffer for you to enter this in.  When you are finished
+typing in the log entry, type `C-c C-c' to terminate it; this is when
+actual check-in takes place.
+
+   Once you have checked in your changes, the file is unlocked, so that
+other users can lock it and modify it.
+
+   Emacs does not save backup files for source files that are maintained
+with version control.  If you want to make backup files despite version
+control, set the variable `vc-make-backup-files' to a non-`nil' value.
+
+   Normally the work file exists all the time, whether it is locked or
+not.  If you set `vc-keep-workfiles' to `nil', then checking in a new
+version with `C-x C-q' deletes the work file; but any attempt to visit
+the file with Emacs creates it again.
+
+   It is not impossible to lock a file that someone else has locked.  If
+you try to check out a file that is locked, `C-x C-q' asks you whether
+you want to "steal the lock."  If you say yes, the file becomes locked
+by you, but a message is sent to the person who had formerly locked the
+file, to inform him of what has happened.  The mode line indicates that
+a file is locked by someone else by displaying the login name of that
+person, before the version number.
+
+   If you want to discard your current set of changes and revert to the
+last version checked in, use `C-x v u' (`vc-revert-buffer').  This
+cancels your last check-out, leaving the file unlocked.  If you want to
+make a different set of changes, you must first check the file out
+again.  `C-x v u' requires confirmation, unless it sees that you
+haven't made any changes since the last checked-in version.
+
+   `C-x v u' is also the command to use if you lock a file and then
+don't actually change it.
+
+   You can cancel a change after checking it in, with `C-x v c'
+(`vc-cancel-version').  This command discards all record of the most
+recent checked in version, so be careful about using it.  It requires
+confirmation with `yes'.  By default, `C-x v c' reverts your workfile
+and buffer to the previous version (the one that precedes the version
+that is deleted), but you can prevent the reversion by giving the
+command a prefix argument.  Then the buffer does not change.
+
+   This command with a prefix argument is useful when you have checked
+in a change and then discover a trivial error in it; you can cancel the
+erroneous check-in, fix the error, and repeat the check-in.
+
+   Be careful when invoking `C-x v c', as it is easy to throw away a
+lot of work with it.  To help you be careful, this command always
+requires confirmation with `yes'.
+
+   You can register the visited file for version control using
+`C-x v i' (`vc-register').  If the variable `vc-default-back-end' is
+non-`nil', it specifies which version control system to use; otherwise,
+this uses RCS if it is installed on your system and SCCS if not.  After
+`C-x v i', the file is unlocked and read-only.  Type `C-x C-q' if you
+wish to edit it.
+
+   By default, the initial version number is 1.1.  If you want to use a
+different number, give `C-x v i' a prefix argument; then it reads the
+initial version number using the minibuffer.
+
+   If `vc-initial-comment' is non-`nil', `C-x v i' reads an initial
+comment (much like a log entry) to describe the purpose of this source
+file.
+
+   To specify the version number for a subsequent checkin, use the
+command `C-u C-x v v'.  `C-x v v' (`vc-next-action') is the command
+that `C-x C-q' uses to do the "real work" when the visited file uses
+version control.  When used for checkin, and given a prefix argument,
+it reads the version number with the minibuffer.
 
 
-`d'
-     Request to delete (kill) the buffer, then move down.  A `D' before
-     the buffer name on a line indicates a deletion request.  Requested
-     deletions actually take place when you use the `x' command.
+\1f
+File: xemacs.info,  Node: Variables for Check-in/out,  Next: Log Entries,  Prev: Editing with VC,  Up: Version Control
+
+Variables Affecting Check-in and Check-out
+------------------------------------------
+
+   If `vc-suppress-confirm' is non-`nil', then `C-x C-q' and `C-x v i'
+can save the current buffer without asking, and `C-x v u' also operates
+without asking for confirmation.  (This variable does not affect `C-x v
+c'; that is so drastic that it should always ask for confirmation.)
+
+   VC mode does much of its work by running the shell commands for RCS
+and SCCS.  If `vc-command-messages' is non-`nil', VC displays messages
+to indicate which shell commands it runs, and additional messages when
+the commands finish.
+
+   Normally, VC assumes that it can deduce the locked/unlocked state of
+files by looking at the file permissions of the work file; this is
+fast.  However, if the `RCS' or `SCCS' subdirectory is actually a
+symbolic link, then VC does not trust the file permissions to reflect
+this status.
+
+   You can specify the criterion for whether to trust the file
+permissions by setting the variable `vc-mistrust-permissions'.  Its
+value may be `t' (always mistrust the file permissions and check the
+master file), `nil' (always trust the file permissions), or a function
+of one argument which makes the decision.  The argument is the directory
+name of the `RCS' or `SCCS' subdirectory.  A non-`nil' value from the
+function says to mistrust the file permissions.
+
+   If you find that the file permissions of work files are changed
+erroneously, set `vc-mistrust-permissions' to `t'.  Then VC always
+checks the master file to determine the file's status.
+
+   You can specify additional directories to search for version control
+programs by setting the variable `vc-path'.  These directories are
+searched before the usual search path.  The proper result usually
+happens automatically.
 
 
-`k'
-     Synonym for `d'.
+\1f
+File: xemacs.info,  Node: Log Entries,  Next: Change Logs and VC,  Prev: Variables for Check-in/out,  Up: Version Control
 
 
-`C-d'
-     Like `d' but move up afterwards instead of down.
+Log Entries
+-----------
 
 
-`s'
-     Request to save the buffer.  An `S' befor the buffer name on a line
-     indicates the request.  Requested saves actually take place when
-     you use the `x' command.  You can request both saving and deletion
-     for the same buffer.
+   When you're editing an initial comment or log entry for inclusion in
+a master file, finish your entry by typing `C-c C-c'.
 
 
-`~'
-     Mark buffer "unmodified".  The command `~' does this immediately
-     when typed.
+`C-c C-c'
+     Finish the comment edit normally (`vc-finish-logentry').  This
+     finishes check-in.
 
 
-`x'
-     Perform previously requested deletions and saves.
+   To abort check-in, just don't type `C-c C-c' in that buffer.  You
+can switch buffers and do other editing.  As long as you don't try to
+check in another file, the entry you were editing remains in its
+buffer, and you can go back to that buffer at any time to complete the
+check-in.
 
 
-`u'
-     Remove any request made for the current line, and move down.
+   If you change several source files for the same reason, it is often
+convenient to specify the same log entry for many of the files.  To do
+this, use the history of previous log entries.  The commands `M-n',
+`M-p', `M-s' and `M-r' for doing this work just like the minibuffer
+history commands (except that these versions are used outside the
+minibuffer).
 
 
-`<DEL>'
-     Move to previous line and remove any request made for that line.
+   Each time you check in a file, the log entry buffer is put into VC
+Log mode, which involves running two hooks: `text-mode-hook' and
+`vc-log-mode-hook'.
 
 
-   All commands that add or remove flags to request later operations
-also move down a line.  They accept a numeric argument as a repeat
-count, unless otherwise specified.
+\1f
+File: xemacs.info,  Node: Change Logs and VC,  Next: Old Versions,  Prev: Log Entries,  Up: Version Control
+
+Change Logs and VC
+------------------
+
+   If you use RCS for a program and also maintain a change log file for
+it (*note Change Log::), you can generate change log entries
+automatically from the version control log entries:
+
+`C-x v a'
+     Visit the current directory's change log file and create new
+     entries for versions checked in since the most recent entry in the
+     change log file (`vc-update-change-log').
+
+     This command works with RCS only; it does not work with SCCS.
+
+   For example, suppose the first line of `ChangeLog' is dated 10 April
+1992, and that the only check-in since then was by Nathaniel Bowditch
+to `rcs2log' on 8 May 1992 with log text `Ignore log messages that
+start with `#'.'.  Then `C-x v a' visits `ChangeLog' and inserts text
+like this:
+
+     Fri May  8 21:45:00 1992  Nathaniel Bowditch  (nat@apn.org)
+     
+             * rcs2log: Ignore log messages that start with `#'.
+
+You can then edit the new change log entry further as you wish.
+
+   Normally, the log entry for file `foo' is displayed as `* foo: TEXT
+OF LOG ENTRY'.  The `:' after `foo' is omitted if the text of the log
+entry starts with `(FUNCTIONNAME): '.  For example, if the log entry
+for `vc.el' is `(vc-do-command): Check call-process status.', then the
+text in `ChangeLog' looks like this:
+
+     Wed May  6 10:53:00 1992  Nathaniel Bowditch  (nat@apn.org)
+     
+             * vc.el (vc-do-command): Check call-process status.
+
+   When `C-x v a' adds several change log entries at once, it groups
+related log entries together if they all are checked in by the same
+author at nearly the same time.  If the log entries for several such
+files all have the same text, it coalesces them into a single entry.
+For example, suppose the most recent checkins have the following log
+entries:
+
+For `vc.texinfo':
+     Fix expansion typos.
+For `vc.el':
+     Don't call expand-file-name.
+For `vc-hooks.el':
+     Don't call expand-file-name.
+
+   They appear like this in `ChangeLog':
+
+     Wed Apr  1 08:57:59 1992  Nathaniel Bowditch  (nat@apn.org)
+     
+             * vc.texinfo: Fix expansion typos.
+     
+             * vc.el, vc-hooks.el: Don't call expand-file-name.
+
+   Normally, `C-x v a' separates log entries by a blank line, but you
+can mark several related log entries to be clumped together (without an
+intervening blank line) by starting the text of each related log entry
+with a label of the form `{CLUMPNAME} '.  The label itself is not
+copied to `ChangeLog'.  For example, suppose the log entries are:
+
+For `vc.texinfo':
+     {expand} Fix expansion typos.
+For `vc.el':
+     {expand} Don't call expand-file-name.
+For `vc-hooks.el':
+     {expand} Don't call expand-file-name.
+
+Then the text in `ChangeLog' looks like this:
+
+     Wed Apr  1 08:57:59 1992  Nathaniel Bowditch  (nat@apn.org)
+     
+             * vc.texinfo: Fix expansion typos.
+             * vc.el, vc-hooks.el: Don't call expand-file-name.
+
+   A log entry whose text begins with `#' is not copied to `ChangeLog'.
+For example, if you merely fix some misspellings in comments, you can
+log the change with an entry beginning with `#' to avoid putting such
+trivia into `ChangeLog'.
 
 
-   There are also special commands to use the buffer list to select
-another buffer, and to specify one or more other buffers for display in
-additional windows.
+\1f
+File: xemacs.info,  Node: Old Versions,  Next: VC Status,  Prev: Change Logs and VC,  Up: Version Control
 
 
-`1'
-     Select the buffer in a full-frame window.  This command takes
-     effect immediately.
+Examining And Comparing Old Versions
+------------------------------------
 
 
-`2'
-     Immediately set up two windows, with this buffer in one and the
-     buffer selected before `*Buffer List*' in the other.
+`C-x v ~ VERSION <RET>'
+     Examine version VERSION of the visited file, in a buffer of its
+     own (`vc-version-other-window').
 
 
-`f'
-     Immediately select the buffer in place of the `*Buffer List*'
-     buffer.
+`C-x v ='
+     Compare the current buffer contents with the latest checked-in
+     version of the file.
 
 
-`o'
-     Immediately select the buffer in another window as if by `C-x 4 b',
-     leaving `*Buffer List*' visible.
+`C-u C-x v = FILE <RET> OLDVERS <RET> NEWVERS <RET>'
+     Compare the specified two versions of FILE.
 
 
-`q'
-     Immediately select this buffer, and display any buffers previously
-     flagged with the `m' command in other windows.  If there are no
-     buffers flagged with `m', this command is equivalent to `1'.
-
-`m'
-     Flag this buffer to be displayed in another window if the `q'
-     command is used.  The request shows as a `>' at the beginning of
-     the line.  The same buffer may not have both a delete request and a
-     display request.
-
-   Going back between a `buffer-menu' buffer and other Emacs buffers is
-easy.  You can, for example, switch from the `*Buffer List*' buffer to
-another Emacs buffer, and edit there.  You can then reselect the
-`buffer-menu' buffer and perform operations already requested, or you
-can kill that buffer or pay no further attention to it.   All that
-`buffer-menu' does directly is create and select a suitable buffer, and
-turn on Buffer Menu mode.  All the other capabilities of the buffer
-menu are implemented by special commands provided in Buffer Menu mode.
-
-   The only difference between `buffer-menu' and `list-buffers' is that
-`buffer-menu' selects the `*Buffer List*' buffer and `list-buffers'
-does not.  If you run `list-buffers' (that is, type `C-x C-b') and
-select the buffer list manually, you can use all the commands described
-here.
+   You can examine any version of a file by first visiting it, and then
+using `C-x v ~ VERSION <RET>' (`vc-version-other-window').  This puts
+the text of version VERSION in a file named `FILENAME.~VERSION~', then
+visits it in a separate window.
 
 
-\1f
-File: xemacs.info,  Node: Windows,  Next: Mule,  Prev: Buffers,  Up: Top
+   To compare two versions of a file, use the command `C-x v ='
+(`vc-diff').
 
 
-Multiple Windows
-****************
+   Plain `C-x v =' compares the current buffer contents (saving them in
+the file if necessary) with the last checked-in version of the file.
+With a prefix argument, `C-x v =' reads a file name and two version
+numbers, then compares those versions of the specified file.
 
 
-   Emacs can split the frame into two or many windows, which can display
-parts of different buffers or different parts of one buffer.  If you are
-running XEmacs under X, that means you can have the X window that
-contains the Emacs frame have multiple subwindows.
+   If you supply a directory name instead of the name of a work file,
+this command compares the two specified versions of all registered files
+in that directory and its subdirectories.  You can also specify a
+snapshot name (*note Snapshots::) instead of one or both version
+numbers.
 
 
-* Menu:
+   You can specify a checked-in version by its number; you can specify
+the most recent checked-in version with an empty version number.
 
 
-* Basic Window::     Introduction to Emacs windows.
-* Split Window::     New windows are made by splitting existing windows.
-* Other Window::     Moving to another window or doing something to it.
-* Pop Up Window::    Finding a file or buffer in another window.
-* Change Window::    Deleting windows and changing their sizes.
+   This command works by running the `vcdiff' utility, getting the
+options from the variable `diff-switches'.  It displays the output in a
+special buffer in another window.  Unlike the `M-x diff' command, `C-x
+v =' does not try to find the changes in the old and new versions.
+This is because one or both versions normally do not exist as files.
+They exist only in the records of the master file.  *Note Comparing
+Files::, for more information about `M-x diff'.
 
 \1f
 
 \1f
-File: xemacs.info,  Node: Basic Window,  Next: Split Window,  Prev: Windows,  Up: Windows
-
-Concepts of Emacs Windows
-=========================
-
-   When Emacs displays multiple windows, each window has one Emacs
-buffer designated for display.  The same buffer may appear in more than
-one window; if it does, any changes in its text are displayed in all
-the windows that display it.  Windows showing the same buffer can show
-different parts of it, because each window has its own value of point.
-
-   At any time, one  window is the "selected window"; the buffer
-displayed by that window is the current buffer.  The cursor shows the
-location of point in that window.  Each other window has a location of
-point as well, but since the terminal has only one cursor, it cannot
-show the location of point in the other windows.
-
-   Commands to move point affect the value of point for the selected
-Emacs window only.  They do not change the value of point in any other
-Emacs window, including those showing the same buffer.  The same is
-true for commands such as `C-x b' to change the selected buffer in the
-selected window; they do not affect other windows at all.  However,
-there are other commands such as `C-x 4 b' that select a different
-window and switch buffers in it.  Also, all commands that display
-information in a window, including (for example) `C-h f'
-(`describe-function') and `C-x C-b' (`list-buffers'), work by switching
-buffers in a non-selected window without affecting the selected window.
-
-   Each window has its own mode line, which displays the buffer name,
-modification status, and major and minor modes of the buffer that is
-displayed in the window.  *Note Mode Line::, for details on the mode
-line.
+File: xemacs.info,  Node: VC Status,  Next: Renaming and VC,  Prev: Old Versions,  Up: Version Control
+
+VC Status Commands
+------------------
+
+   To view the detailed version control status and history of a file,
+type `C-x v l' (`vc-print-log').  It displays the history of changes to
+the current file, including the text of the log entries.  The output
+appears in a separate window.
+
+   When you are working on a large program, it's often useful to find
+all the files that are currently locked, or all the files maintained in
+version control at all.  You can use `C-x v d' (`vc-directory') to show
+all the locked files in or beneath the current directory.  This
+includes all files that are locked by any user.  `C-u C-x v d' lists
+all files in or beneath the current directory that are maintained with
+version control.
+
+   The list of files is displayed as a buffer that uses an augmented
+Dired mode.  The names of the users locking various files are shown (in
+parentheses) in place of the owner and group.  All the normal Dired
+commands work in this buffer.  Most interactive VC commands work also,
+and apply to the file name on the current line.
+
+   The `C-x v v' command (`vc-next-action'), when used in the augmented
+Dired buffer, operates on all the marked files (or the file on the
+current line).  If it operates on more than one file, it handles each
+file according to its current state; thus, it may check out one file
+and check in another (because it is already checked out).  If it has to
+check in any files, it reads a single log entry, then uses that text
+for all the files being checked in.  This can be convenient for
+registering or checking in several files at once, as part of the same
+change.
 
 \1f
 
 \1f
-File: xemacs.info,  Node: Split Window,  Next: Other Window,  Prev: Basic Window,  Up: Windows
-
-Splitting Windows
-=================
-
-`C-x 2'
-     Split the selected window into two windows, one above the other
-     (`split-window-vertically').
-
-`C-x 3'
-     Split the selected window into two windows positioned side by side
-     (`split-window-horizontally').
-
-`C-x 6'
-     Save the current window configuration in register REG (a letter).
-
-`C-x 7'
-     Restore (make current) the window configuration in register REG (a
-     letter).  Use with a register previously set with `C-x 6'.
-
-   The command `C-x 2' (`split-window-vertically') breaks the selected
-window into two windows, one above the other.  Both windows start out
-displaying the same buffer, with the same value of point.  By default
-each of the two windows gets half the height of the window that was
-split.  A numeric argument specifies how many lines to give to the top
-window.
-
-   `C-x 3' (`split-window-horizontally') breaks the selected window
-into two side-by-side windows.  A numeric argument specifies how many
-columns to give the one on the left.  A line of vertical bars separates
-the two windows.  Windows that are not the full width of the frame have
-truncated mode lines which do not always appear in inverse video,
-because Emacs display routines cannot display a region of inverse video
-that is only part of a line on the screen.
-
-   When a window is less than the full width, many text lines are too
-long to fit.  Continuing all those lines might be confusing.  Set the
-variable `truncate-partial-width-windows' to non-`nil' to force
-truncation in all windows less than the full width of the frame,
-independent of the buffer and its value for `truncate-lines'.  *Note
-Continuation Lines::.
-
-   Horizontal scrolling is often used in side-by-side windows.  *Note
-Display::.
-
-   You can resize a window and store that configuration in a register by
-supplying a REGISTER argument to `window-configuration-to-register'
-(`C-x 6'). To return to the window configuration established with
-`window-configuration-to-register', use `jump-to-register' (`C-x j').
+File: xemacs.info,  Node: Renaming and VC,  Next: Snapshots,  Prev: VC Status,  Up: Version Control
+
+Renaming VC Work Files and Master Files
+---------------------------------------
+
+   When you rename a registered file, you must also rename its master
+file correspondingly to get proper results.  Use `vc-rename-file' to
+rename the source file as you specify, and rename its master file
+accordingly.  It also updates any snapshots (*note Snapshots::) that
+mention the file, so that they use the new name; despite this, the
+snapshot thus modified may not completely work (*note Snapshot
+Caveats::).
+
+   You cannot use `vc-rename-file' on a file that is locked by someone
+else.
 
 \1f
 
 \1f
-File: xemacs.info,  Node: Other Window,  Next: Pop Up Window,  Prev: Split Window,  Up: Windows
-
-Using Other Windows
-===================
-
-`C-x o'
-     Select another window (`other-window').  That is the letter `o',
-     not zero.
-
-`M-C-v'
-     Scroll the next window (`scroll-other-window').
-
-`M-x compare-windows'
-     Find the next place where the text in the selected window does not
-     match the text in the next window.
-
-`M-x other-window-any-frame N'
-     Select the Nth different window on any frame.
-
-   To select a different window, use `C-x o' (`other-window').  That is
-an `o', for `other', not a zero.  When there are more than two windows,
-the command moves through all the windows in a cyclic order, generally
-top to bottom and left to right.  From the rightmost and bottommost
-window, it goes back to the one at the upper left corner.  A numeric
-argument, N, moves several steps in the cyclic order of windows. A
-negative numeric argument moves around the cycle in the opposite order.
-If the optional second argument ALL-FRAMES is non-`nil', the function
-cycles through all frames.  When the minibuffer is active, the
-minibuffer is the last window in the cycle; you can switch from the
-minibuffer window to one of the other windows, and later switch back
-and finish supplying the minibuffer argument that is requested.  *Note
-Minibuffer Edit::.
-
-   The command `M-x other-window-any-frame' also selects the window N
-steps away in the cyclic order.  However, unlike `other-window', this
-command selects a window on the next or previous frame instead of
-wrapping around to the top or bottom of the current frame, when there
-are no more windows.
-
-   The usual scrolling commands (*note Display::.) apply to the selected
-window only.  `M-C-v' (`scroll-other-window') scrolls the window that
-`C-x o' would select.  Like `C-v', it takes positive and negative
-arguments.
+File: xemacs.info,  Node: Snapshots,  Next: Version Headers,  Prev: Renaming and VC,  Up: Version Control
 
 
-   The command `M-x compare-windows' compares the text in the current
-window with the text in the next window.  Comparison starts at point in
-each window.  Point moves forward in each window, a character at a time,
-until the next set of characters in the two windows are different.
-Then the command is finished.
+Snapshots
+---------
 
 
-   A prefix argument IGNORE-WHITESPACE means ignore changes in
-whitespace.  The variable `compare-windows-whitespace' controls how
-whitespace is skipped.
+   A "snapshot" is a named set of file versions (one for each
+registered file) that you can treat as a unit.  One important kind of
+snapshot is a "release", a (theoretically) stable version of the system
+that is ready for distribution to users.
 
 
-   If `compare-ignore-case' is non-`nil', changes in case are also
-ignored.
+* Menu:
+
+* Making Snapshots::           The snapshot facilities.
+* Snapshot Caveats::           Things to be careful of when using snapshots.
 
 \1f
 
 \1f
-File: xemacs.info,  Node: Pop Up Window,  Next: Change Window,  Prev: Other Window,  Up: Windows
+File: xemacs.info,  Node: Making Snapshots,  Next: Snapshot Caveats,  Prev: Snapshots,  Up: Snapshots
 
 
-Displaying in Another Window
-============================
+Making and Using Snapshots
+..........................
 
 
-   `C-x 4' is a prefix key for commands that select another window
-(splitting the window if there is only one) and select a buffer in that
-window.  Different `C-x 4' commands have different ways of finding the
-buffer to select.
+   There are two basic commands for snapshots; one makes a snapshot
+with a given name, the other retrieves a named snapshot.
 
 
-`C-x 4 b BUFNAME <RET>'
-     Select buffer BUFNAME in another window.  This runs
-     `switch-to-buffer-other-window'.
+`C-x v s NAME <RET>'
+     Define the last saved versions of every registered file in or
+     under the current directory as a snapshot named NAME
+     (`vc-create-snapshot').
 
 
-`C-x 4 f FILENAME <RET>'
-     Visit file FILENAME and select its buffer in another window.  This
-     runs `find-file-other-window'.  *Note Visiting::.
+`C-x v r NAME <RET>'
+     Check out all registered files at or below the current directory
+     level using whatever versions correspond to the snapshot NAME
+     (`vc-retrieve-snapshot').
 
 
-`C-x 4 d DIRECTORY <RET>'
-     Select a Dired buffer for directory DIRECTORY in another window.
-     This runs `dired-other-window'.  *Note Dired::.
+     This command reports an error if any files are locked at or below
+     the current directory, without changing anything; this is to avoid
+     overwriting work in progress.
 
 
-`C-x 4 m'
-     Start composing a mail message in another window.  This runs
-     `mail-other-window', and its same-window version is `C-x m' (*note
-     Sending Mail::.).
+   A snapshot uses a very small amount of resources--just enough to
+record the list of file names and which version belongs to the
+snapshot.  Thus, you need not hesitate to create snapshots whenever
+they are useful.
 
 
-`C-x 4 .'
-     Find a tag in the current tag table in another window.  This runs
-     `find-tag-other-window', the multiple-window variant of `M-.'
-     (*note Tags::.).
+   You can give a snapshot name as an argument to `C-x v =' or `C-x v
+~' (*note Old Versions::).  Thus, you can use it to compare a snapshot
+against the current files, or two snapshots against each other, or a
+snapshot against a named version.
 
 
-   If the variable `display-buffer-function' is non-`nil', its value is
-the function to call to handle `display-buffer'. It receives two
-arguments, the buffer and a flag that if non-`nil' means that the
-currently selected window is not acceptable. Commands such as
-`switch-to-buffer-other-window' and `find-file-other-window' work using
-this function.
+\1f
+File: xemacs.info,  Node: Snapshot Caveats,  Prev: Making Snapshots,  Up: Snapshots
+
+Snapshot Caveats
+................
+
+   VC's snapshot facilities are modeled on RCS's named-configuration
+support.  They use RCS's native facilities for this, so under VC
+snapshots made using RCS are visible even when you bypass VC.
+
+   For SCCS, VC implements snapshots itself.  The files it uses contain
+name/file/version-number triples.  These snapshots are visible only
+through VC.
+
+   A snapshot is a set of checked-in versions.  So make sure that all
+the files are checked in and not locked when you make a snapshot.
+
+   File renaming and deletion can create some difficulties with
+snapshots.  This is not a VC-specific problem, but a general design
+issue in version control systems that no one has solved very well yet.
+
+   If you rename a registered file, you need to rename its master along
+with it (the command `vc-rename-file' does this automatically).  If you
+are using SCCS, you must also update the records of the snapshot, to
+mention the file by its new name (`vc-rename-file' does this, too).  An
+old snapshot that refers to a master file that no longer exists under
+the recorded name is invalid; VC can no longer retrieve it.  It would
+be beyond the scope of this manual to explain enough about RCS and SCCS
+to explain how to update the snapshots by hand.
+
+   Using `vc-rename-file' makes the snapshot remain valid for
+retrieval, but it does not solve all problems.  For example, some of the
+files in the program probably refer to others by name.  At the very
+least, the makefile probably mentions the file that you renamed.  If you
+retrieve an old snapshot, the renamed file is retrieved under its new
+name, which is not the name that the makefile expects.  So the program
+won't really work as retrieved.
 
 \1f
 
 \1f
-File: xemacs.info,  Node: Change Window,  Prev: Pop Up Window,  Up: Windows
-
-Deleting and Rearranging Windows
-================================
-
-`C-x 0'
-     Get rid of the selected window (`delete-window').  That is a zero.
-     If there is more than one Emacs frame, deleting the sole remaining
-     window on that frame deletes the frame as well. If the current
-     frame is the only frame, it is not deleted.
-
-`C-x 1'
-     Get rid of all windows except the selected one
-     (`delete-other-windows').
-
-`C-x ^'
-     Make the selected window taller, at the expense of the other(s)
-     (`enlarge-window').
-
-`C-x }'
-     Make the selected window wider (`enlarge-window-horizontally').
-
-   To delete a window, type `C-x 0' (`delete-window').  (That is a
-zero.)  The space occupied by the deleted window is distributed among
-the other active windows (but not the minibuffer window, even if that
-is active at the time).  Once a window is deleted, its attributes are
-forgotten; there is no automatic way to make another window of the same
-shape or showing the same buffer.  The buffer continues to exist, and
-you can select it in any window with `C-x b'.
-
-   `C-x 1' (`delete-other-windows') is more powerful than `C-x 0'; it
-deletes all the windows except the selected one (and the minibuffer).
-The selected window expands to use the whole frame except for the echo
-area.
-
-   To readjust the division of space among existing windows, use `C-x
-^' (`enlarge-window').  It makes the currently selected window longer
-by one line or as many lines as a numeric argument specifies.  With a
-negative argument, it makes the selected window smaller.  `C-x }'
-(`enlarge-window-horizontally') makes the selected window wider by the
-specified number of columns.  The extra screen space given to a window
-comes from one of its neighbors, if that is possible; otherwise, all
-the competing windows are shrunk in the same proportion.  If this makes
-some windows too small, those windows are deleted and their space is
-divided up.   Minimum window size is specified by the variables
-`window-min-height' and `window-min-width'.
-
-   You can also resize windows within a frame by clicking the left mouse
-button on a modeline, and dragging.
-
-   Clicking the right button on a mode line pops up a menu of common
-window manager operations.  This menu contains the following options:
-
-Delete Window
-     Remove the window above this modeline from the frame.
-
-Delete Other Windows
-     Delete all windows on the frame except for the one above this
-     modeline.
-
-Split Window
-     Split the window above the mode line in half, creating another
-     window.
-
-Split Window Horizontally
-     Split the window above the mode line in half horizontally, so that
-     there will be two windows side-by-side.
-
-Balance Windows
-     Readjust the sizes of all windows on the frame until all windows
-     have roughly the same number of lines.
+File: xemacs.info,  Node: Version Headers,  Prev: Snapshots,  Up: Version Control
+
+Inserting Version Control Headers
+---------------------------------
+
+   Sometimes it is convenient to put version identification strings
+directly into working files.  Certain special strings called "version
+headers" are replaced in each successive version by the number of that
+version.
+
+   You can use the `C-x v h' command (`vc-insert-headers') to insert a
+suitable header string.
+
+`C-x v h'
+     Insert headers in a file for use with your version-control system.
+
+   The default header string is `\$Id\$' for RCS and `\%W\%' for SCCS.
+(The actual strings inserted do not have the backslashes in them.  They
+were placed in the Info source file so that the strings don't get
+interpreted as version-control headers when the Info source files are
+maintained under version control.) You can specify other headers to
+insert by setting the variable `vc-header-alist'.  Its value is a list
+of elements of the form `(PROGRAM . STRING)' where PROGRAM is `RCS' or
+`SCCS' and STRING is the string to use.
+
+   Instead of a single string, you can specify a list of strings; then
+each string in the list is inserted as a separate header on a line of
+its own.
+
+   It is often necessary to use "superfluous" backslashes when writing
+the strings that you put in this variable.  This is to prevent the
+string in the constant from being interpreted as a header itself if the
+Emacs Lisp file containing it is maintained with version control.
+
+   Each header is inserted surrounded by tabs, inside comment
+delimiters, on a new line at the start of the buffer.  Normally the
+ordinary comment start and comment end strings of the current mode are
+used, but for certain modes, there are special comment delimiters for
+this purpose; the variable `vc-comment-alist' specifies them.  Each
+element of this list has the form `(MODE STARTER ENDER)'.
+
+   The variable `vc-static-header-alist' specifies further strings to
+add based on the name of the buffer.  Its value should be a list of
+elements of the form `(REGEXP . FORMAT)'.  Whenever REGEXP matches the
+buffer name, FORMAT is inserted as part of the header.  A header line
+is inserted for each element that matches the buffer name, and for each
+string specified by `vc-header-alist'.  The header line is made by
+processing the string from `vc-header-alist' with the format taken from
+the element.  The default value for `vc-static-header-alist' is:
+
+     (("\\.c$" .
+       "\n#ifndef lint\nstatic char vcid[] = \"\%s\";\n\
+     #endif /* lint */\n"))
+
+which specifies insertion of a string of this form:
+
+
+     #ifndef lint
+     static char vcid[] = "STRING";
+     #endif /* lint */
 
 \1f
 
 \1f
-File: xemacs.info,  Node: Mule,  Next: Major Modes,  Prev: Windows,  Up: Top
+File: xemacs.info,  Node: ListDir,  Next: Comparing Files,  Prev: Version Control,  Up: Files
 
 
-World Scripts Support
-*********************
+Listing a File Directory
+========================
 
 
-   If you compile XEmacs with mule option, it supports a wide variety of
-world scripts, including Latin script, as well as Arabic script,
-Simplified Chinese script (for mainland of China), Traditional Chinese
-script (for Taiwan and Hong-Kong), Greek script, Hebrew script, IPA
-symbols, Japanese scripts (Hiragana, Katakana and Kanji), Korean scripts
-(Hangul and Hanja) and Cyrillic script (for Beylorussian, Bulgarian,
-Russian, Serbian and Ukrainian).  These features have been merged from
-the modified version of Emacs known as MULE (for "MULti-lingual
-Enhancement to GNU Emacs").
+   Files are organized by Unix into "directories".  A "directory
+listing" is a list of all the files in a directory.  Emacs provides
+directory listings in brief format (file names only) and verbose format
+(sizes, dates, and authors included).
 
 
-* Menu:
+`C-x C-d DIR-OR-PATTERN'
+     Print a brief directory listing (`list-directory').
 
 
-* Mule Intro::              Basic concepts of Mule.
-* Language Environments::   Setting things up for the language you use.
-* Input Methods::           Entering text characters not on your keyboard.
-* Select Input Method::     Specifying your choice of input methods.
-* Coding Systems::          Character set conversion when you read and
-                              write files, and so on.
-* Recognize Coding::        How XEmacs figures out which conversion to use.
-* Specify Coding::          Various ways to choose which conversion to use.
+`C-u C-x C-d DIR-OR-PATTERN'
+     Print a verbose directory listing.
 
 
-\1f
-File: xemacs.info,  Node: Mule Intro,  Next: Language Environments,  Prev: Mule,  Up: Mule
+   To print a directory listing, use `C-x C-d' (`list-directory').
+This command prompts in the minibuffer for a file name which is either
+a  directory to be listed or pattern containing wildcards for the files
+to be listed.  For example,
 
 
-Introduction to world scripts
-=============================
+     C-x C-d /u2/emacs/etc <RET>
 
 
-   The users of these scripts have established many more-or-less
-standard coding systems for storing files.  XEmacs translates between
-the internal character encoding and various other coding systems when
-reading and writing files, when exchanging data with subprocesses, and
-(in some cases) in the `C-q' command (see below).
+lists all the files in directory `/u2/emacs/etc'.  An example of
+specifying a file name pattern is:
 
 
-   The command `C-h h' (`view-hello-file') displays the file
-`etc/HELLO', which shows how to say "hello" in many languages.  This
-illustrates various scripts.
+     C-x C-d /u2/emacs/src/*.c <RET>
 
 
-   Keyboards, even in the countries where these character sets are used,
-generally don't have keys for all the characters in them.  So XEmacs
-supports various "input methods", typically one for each script or
-language, to make it convenient to type them.
+   Normally, `C-x C-d' prints a brief directory listing containing just
+file names.  A numeric argument (regardless of value) tells it to print
+a verbose listing (like `ls -l').
 
 
-   The prefix key `C-x <RET>' is used for commands that pertain to
-world scripts, coding systems, and input methods.
+   Emacs obtains the text of a directory listing by running `ls' in an
+inferior process.  Two Emacs variables control the switches passed to
+`ls': `list-directory-brief-switches' is a string giving the switches
+to use in brief listings (`"-CF"' by default).
+`list-directory-verbose-switches' is a string giving the switches to
+use in a verbose listing (`"-l"' by default).
 
 
-\1f
-File: xemacs.info,  Node: Language Environments,  Next: Input Methods,  Prev: Mule Intro,  Up: Mule
-
-Language Environments
-=====================
-
-   All supported character sets are supported in XEmacs buffers if it is
-compile with mule; there is no need to select a particular language in
-order to display its characters in an XEmacs buffer.  However, it is
-important to select a "language environment" in order to set various
-defaults.  The language environment really represents a choice of
-preferred script (more or less) rather that a choice of language.
-
-   The language environment controls which coding systems to recognize
-when reading text (*note Recognize Coding::.).  This applies to files,
-incoming mail, netnews, and any other text you read into XEmacs.  It may
-also specify the default coding system to use when you create a file.
-Each language environment also specifies a default input method.
-
-   The command to select a language environment is `M-x
-set-language-environment'.  It makes no difference which buffer is
-current when you use this command, because the effects apply globally to
-the XEmacs session.  The supported language environments include:
-
-     Chinese-BIG5, Chinese-CNS, Chinese-GB, Cyrillic-ISO, English,
-     Ethiopic, Greek, Japanese, Korean, Latin-1, Latin-2, Latin-3,
-     Latin-4, Latin-5.
-
-   Some operating systems let you specify the language you are using by
-setting locale environment variables.  XEmacs handles one common special
-case of this: if your locale name for character types contains the
-string `8859-N', XEmacs automatically selects the corresponding
-language environment.
-
-   To display information about the effects of a certain language
-environment LANG-ENV, use the command `C-h L LANG-ENV <RET>'
-(`describe-language-environment').  This tells you which languages this
-language environment is useful for, and lists the character sets,
-coding systems, and input methods that go with it.  It also shows some
-sample text to illustrate scripts used in this language environment.
-By default, this command describes the chosen language environment.
+   The variable `directory-abbrev-alist' is an alist of abbreviations
+for file directories.  The list consists of elements of the form `(FROM
+.  TO)', each meaning to replace `FROM' with `TO' when it appears in a
+directory name.  This replacement is done when setting up the default
+directory of a newly visited file.  Every `FROM' string should start
+with ``^''.
 
 
-\1f
-File: xemacs.info,  Node: Input Methods,  Next: Select Input Method,  Prev: Language Environments,  Up: Mule
-
-Input Methods
-=============
-
-   An "input method" is a kind of character conversion designed
-specifically for interactive input.  In XEmacs, typically each language
-has its own input method; sometimes several languages which use the same
-characters can share one input method.  A few languages support several
-input methods.
-
-   The simplest kind of input method works by mapping ASCII letters into
-another alphabet.  This is how the Greek and Russian input methods work.
-
-   A more powerful technique is composition: converting sequences of
-characters into one letter.  Many European input methods use composition
-to produce a single non-ASCII letter from a sequence that consists of a
-letter followed by accent characters.  For example, some methods convert
-the sequence `'a' into a single accented letter.
-
-   The input methods for syllabic scripts typically use mapping followed
-by composition.  The input methods for Thai and Korean work this way.
-First, letters are mapped into symbols for particular sounds or tone
-marks; then, sequences of these which make up a whole syllable are
-mapped into one syllable sign.
-
-   Chinese and Japanese require more complex methods.  In Chinese input
-methods, first you enter the phonetic spelling of a Chinese word (in
-input method `chinese-py', among others), or a sequence of portions of
-the character (input methods `chinese-4corner' and `chinese-sw', and
-others).  Since one phonetic spelling typically corresponds to many
-different Chinese characters, you must select one of the alternatives
-using special XEmacs commands.  Keys such as `C-f', `C-b', `C-n',
-`C-p', and digits have special definitions in this situation, used for
-selecting among the alternatives.  <TAB> displays a buffer showing all
-the possibilities.
-
-   In Japanese input methods, first you input a whole word using
-phonetic spelling; then, after the word is in the buffer, XEmacs
-converts it into one or more characters using a large dictionary.  One
-phonetic spelling corresponds to many differently written Japanese
-words, so you must select one of them; use `C-n' and `C-p' to cycle
-through the alternatives.
-
-   Sometimes it is useful to cut off input method processing so that the
-characters you have just entered will not combine with subsequent
-characters.  For example, in input method `latin-1-postfix', the
-sequence `e '' combines to form an `e' with an accent.  What if you
-want to enter them as separate characters?
-
-   One way is to type the accent twice; that is a special feature for
-entering the separate letter and accent.  For example, `e ' '' gives
-you the two characters `e''.  Another way is to type another letter
-after the `e'--something that won't combine with that--and immediately
-delete it.  For example, you could type `e e <DEL> '' to get separate
-`e' and `''.
-
-   Another method, more general but not quite as easy to type, is to use
-`C-\ C-\' between two characters to stop them from combining.  This is
-the command `C-\' (`toggle-input-method') used twice.  *Note Select
-Input Method::.
-
-   `C-\ C-\' is especially useful inside an incremental search, because
-stops waiting for more characters to combine, and starts searching for
-what you have already entered.
-
-   The variables `input-method-highlight-flag' and
-`input-method-verbose-flag' control how input methods explain what is
-happening.  If `input-method-highlight-flag' is non-`nil', the partial
-sequence is highlighted in the buffer.  If `input-method-verbose-flag'
-is non-`nil', the list of possible characters to type next is displayed
-in the echo area (but not when you are in the minibuffer).
+   Use this feature when you have directories which you normally refer
+to via absolute symbolic links.  Make `TO' the name of the link, and
+`FROM' the name it is linked to.
 
 \1f
 
 \1f
-File: xemacs.info,  Node: Select Input Method,  Next: Coding Systems,  Prev: Input Methods,  Up: Mule
+File: xemacs.info,  Node: Comparing Files,  Next: Dired,  Prev: ListDir,  Up: Files
 
 
-Selecting an Input Method
-=========================
+Comparing Files
+===============
 
 
-`C-\'
-     Enable or disable use of the selected input method.
+   The command `M-x diff' compares two files, displaying the
+differences in an Emacs buffer named `*Diff*'.  It works by running the
+`diff' program, using options taken from the variable `diff-switches',
+whose value should be a string.
 
 
-`C-x <RET> C-\ METHOD <RET>'
-     Select a new input method for the current buffer.
+   The buffer `*Diff*' has Compilation mode as its major mode, so you
+can use `C-x `' to visit successive changed locations in the two source
+files.  You can also move to a particular hunk of changes and type `C-c
+C-c' to find the corresponding source location.  You can also use the
+other special commands of Compilation mode: <SPC> and <DEL> for
+scrolling, and `M-p' and `M-n' for cursor motion.  *Note Compilation::.
 
 
-`C-h I METHOD <RET>'
-`C-h C-\ METHOD <RET>'
-     Describe the input method METHOD (`describe-input-method').  By
-     default, it describes the current input method (if any).
+   The command `M-x diff-backup' compares a specified file with its most
+recent backup.  If you specify the name of a backup file, `diff-backup'
+compares it with the source file that it is a backup of.
 
 
-`M-x list-input-methods'
-     Display a list of all the supported input methods.
+   The command `M-x compare-windows' compares the text in the current
+window with that in the next window.  Comparison starts at point in each
+window.  Point moves forward in each window, a character at a time in
+each window, until the next characters in the two windows are
+different.  Then the command is finished.  For more information about
+windows in Emacs, *Note Windows::.
 
 
-   To choose an input method for the current buffer, use `C-x <RET>
-C-\' (`select-input-method').  This command reads the input method name
-with the minibuffer; the name normally starts with the language
-environment that it is meant to be used with.  The variable
-`current-input-method' records which input method is selected.
+   With a numeric argument, `compare-windows' ignores changes in
+whitespace.  If the variable `compare-ignore-case' is non-`nil', it
+ignores differences in case as well.
 
 
-   Input methods use various sequences of ASCII characters to stand for
-non-ASCII characters.  Sometimes it is useful to turn off the input
-method temporarily.  To do this, type `C-\' (`toggle-input-method').
-To reenable the input method, type `C-\' again.
+\1f
+File: xemacs.info,  Node: Dired,  Next: Misc File Ops,  Prev: Comparing Files,  Up: Files
 
 
-   If you type `C-\' and you have not yet selected an input method, it
-prompts for you to specify one.  This has the same effect as using `C-x
-<RET> C-\' to specify an input method.
+Dired, the Directory Editor
+===========================
 
 
-   Selecting a language environment specifies a default input method for
-use in various buffers.  When you have a default input method, you can
-select it in the current buffer by typing `C-\'.  The variable
-`default-input-method' specifies the default input method (`nil' means
-there is none).
+   Dired makes it easy to delete or visit many of the files in a single
+directory at once.  It creates an Emacs buffer containing a listing of
+the directory.  You can use the normal Emacs commands to move around in
+this buffer and special Dired commands to operate on the files.
 
 
-   Some input methods for alphabetic scripts work by (in effect)
-remapping the keyboard to emulate various keyboard layouts commonly used
-for those scripts.  How to do this remapping properly depends on your
-actual keyboard layout.  To specify which layout your keyboard has, use
-the command `M-x quail-set-keyboard-layout'.
+* Menu:
 
 
-   To display a list of all the supported input methods, type `M-x
-list-input-methods'.  The list gives information about each input
-method, including the string that stands for it in the mode line.
+* Enter: Dired Enter.         How to invoke Dired.
+* Edit: Dired Edit.           Editing the Dired buffer.
+* Deletion: Dired Deletion.   Deleting files with Dired.
+* Immed: Dired Immed.         Other file operations through Dired.
 
 \1f
 
 \1f
-File: xemacs.info,  Node: Coding Systems,  Next: Recognize Coding,  Prev: Select Input Method,  Up: Mule
-
-Coding Systems
-==============
-
-   Users of various languages have established many more-or-less
-standard coding systems for representing them.  XEmacs does not use
-these coding systems internally; instead, it converts from various
-coding systems to its own system when reading data, and converts the
-internal coding system to other coding systems when writing data.
-Conversion is possible in reading or writing files, in sending or
-receiving from the terminal, and in exchanging data with subprocesses.
-
-   XEmacs assigns a name to each coding system.  Most coding systems are
-used for one language, and the name of the coding system starts with the
-language name.  Some coding systems are used for several languages;
-their names usually start with `iso'.  There are also special coding
-systems `binary' and `no-conversion' which do not convert printing
-characters at all.
-
-   In addition to converting various representations of non-ASCII
-characters, a coding system can perform end-of-line conversion.  XEmacs
-handles three different conventions for how to separate lines in a file:
-newline, carriage-return linefeed, and just carriage-return.
-
-`C-h C CODING <RET>'
-     Describe coding system CODING.
-
-`C-h C <RET>'
-     Describe the coding systems currently in use.
-
-`M-x list-coding-systems'
-     Display a list of all the supported coding systems.
-
-   The command `C-h C' (`describe-coding-system') displays information
-about particular coding systems.  You can specify a coding system name
-as argument; alternatively, with an empty argument, it describes the
-coding systems currently selected for various purposes, both in the
-current buffer and as the defaults, and the priority list for
-recognizing coding systems (*note Recognize Coding::.).
-
-   To display a list of all the supported coding systems, type `M-x
-list-coding-systems'.  The list gives information about each coding
-system, including the letter that stands for it in the mode line (*note
-Mode Line::.).
-
-   Each of the coding systems that appear in this list--except for
-`binary', which means no conversion of any kind--specifies how and
-whether to convert printing characters, but leaves the choice of
-end-of-line conversion to be decided based on the contents of each file.
-For example, if the file appears to use carriage-return linefeed between
-lines, that end-of-line conversion will be used.
-
-   Each of the listed coding systems has three variants which specify
-exactly what to do for end-of-line conversion:
-
-`...-unix'
-     Don't do any end-of-line conversion; assume the file uses newline
-     to separate lines.  (This is the convention normally used on Unix
-     and GNU systems.)
-
-`...-dos'
-     Assume the file uses carriage-return linefeed to separate lines,
-     and do the appropriate conversion.  (This is the convention
-     normally used on Microsoft systems.)
-
-`...-mac'
-     Assume the file uses carriage-return to separate lines, and do the
-     appropriate conversion.  (This is the convention normally used on
-     the Macintosh system.)
-
-   These variant coding systems are omitted from the
-`list-coding-systems' display for brevity, since they are entirely
-predictable.  For example, the coding system `iso-8859-1' has variants
-`iso-8859-1-unix', `iso-8859-1-dos' and `iso-8859-1-mac'.
-
-   In contrast, the coding system `binary' specifies no character code
-conversion at all--none for non-Latin-1 byte values and none for end of
-line.  This is useful for reading or writing binary files, tar files,
-and other files that must be examined verbatim.
-
-   The easiest way to edit a file with no conversion of any kind is with
-the `M-x find-file-literally' command.  This uses `binary', and also
-suppresses other XEmacs features that might convert the file contents
-before you see them.  *Note Visiting::.
-
-   The coding system `no-conversion' means that the file contains
-non-Latin-1 characters stored with the internal XEmacs encoding.  It
-handles end-of-line conversion based on the data encountered, and has
-the usual three variants to specify the kind of end-of-line conversion.
+File: xemacs.info,  Node: Dired Enter,  Next: Dired Edit,  Prev: Dired,  Up: Dired
+
+Entering Dired
+--------------
+
+   To invoke dired, type `C-x d' or `M-x dired'.  The command reads a
+directory name or wildcard file name pattern as a minibuffer argument
+just like the `list-directory' command, `C-x C-d'.  Where `dired'
+differs from `list-directory' is in naming the buffer after the
+directory name or the wildcard pattern used for the listing, and putting
+the buffer into Dired mode so that the special commands of Dired are
+available in it.  The variable `dired-listing-switches' is a string
+used as an argument to `ls' in making the directory; this string must
+contain `-l'.
+
+   To display the Dired buffer in another window rather than in the
+selected window, use `C-x 4 d' (`dired-other-window)' instead of `C-x
+d'.
 
 \1f
 
 \1f
-File: xemacs.info,  Node: Recognize Coding,  Next: Specify Coding,  Prev: Coding Systems,  Up: Mule
-
-Recognizing Coding Systems
-==========================
-
-   Most of the time, XEmacs can recognize which coding system to use for
-any given file-once you have specified your preferences.
-
-   Some coding systems can be recognized or distinguished by which byte
-sequences appear in the data.  However, there are coding systems that
-cannot be distinguished, not even potentially.  For example, there is no
-way to distinguish between Latin-1 and Latin-2; they use the same byte
-values with different meanings.
-
-   XEmacs handles this situation by means of a priority list of coding
-systems.  Whenever XEmacs reads a file, if you do not specify the coding
-system to use, XEmacs checks the data against each coding system,
-starting with the first in priority and working down the list, until it
-finds a coding system that fits the data.  Then it converts the file
-contents assuming that they are represented in this coding system.
-
-   The priority list of coding systems depends on the selected language
-environment (*note Language Environments::.).  For example, if you use
-French, you probably want XEmacs to prefer Latin-1 to Latin-2; if you
-use Czech, you probably want Latin-2 to be preferred.  This is one of
-the reasons to specify a language environment.
-
-   However, you can alter the priority list in detail with the command
-`M-x prefer-coding-system'.  This command reads the name of a coding
-system from the minibuffer, and adds it to the front of the priority
-list, so that it is preferred to all others.  If you use this command
-several times, each use adds one element to the front of the priority
-list.
-
-   Sometimes a file name indicates which coding system to use for the
-file.  The variable `file-coding-system-alist' specifies this
-correspondence.  There is a special function
-`modify-coding-system-alist' for adding elements to this list.  For
-example, to read and write all `.txt' using the coding system
-`china-iso-8bit', you can execute this Lisp expression:
-
-     (modify-coding-system-alist 'file "\\.txt\\'" 'china-iso-8bit)
-
-The first argument should be `file', the second argument should be a
-regular expression that determines which files this applies to, and the
-third argument says which coding system to use for these files.
-
-   You can specify the coding system for a particular file using the
-`-*-...-*-' construct at the beginning of a file, or a local variables
-list at the end (*note File Variables::.).  You do this by defining a
-value for the "variable" named `coding'.  XEmacs does not really have a
-variable `coding'; instead of setting a variable, it uses the specified
-coding system for the file.  For example, `-*-mode: C; coding:
-iso-8859-1;-*-' specifies use of the iso-8859-1 coding system, as well
-as C mode.
-
-   Once XEmacs has chosen a coding system for a buffer, it stores that
-coding system in `buffer-file-coding-system' and uses that coding
-system, by default, for operations that write from this buffer into a
-file.  This includes the commands `save-buffer' and `write-region'.  If
-you want to write files from this buffer using a different coding
-system, you can specify a different coding system for the buffer using
-`set-buffer-file-coding-system' (*note Specify Coding::.).
+File: xemacs.info,  Node: Dired Edit,  Next: Dired Deletion,  Prev: Dired Enter,  Up: Dired
+
+Editing in Dired
+----------------
+
+   Once the Dired buffer exists, you can switch freely between it and
+other Emacs buffers.  Whenever the Dired buffer is selected, certain
+special commands are provided that operate on files that are listed.
+The Dired buffer is "read-only", and inserting text in it is not
+useful, so ordinary printing characters such as `d' and `x' are used
+for Dired commands.  Most Dired commands operate on the file described
+by the line that point is on.  Some commands perform operations
+immediately; others "flag" a file to be operated on later.
+
+   Most Dired commands that operate on the current line's file also
+treat a numeric argument as a repeat count, meaning to act on the files
+of the next few lines.  A negative argument means to operate on the
+files of the preceding lines, and leave point on the first of those
+lines.
+
+   All the usual Emacs cursor motion commands are available in Dired
+buffers.  Some special purpose commands are also provided.  The keys
+`C-n' and `C-p' are redefined so that they try to position the cursor
+at the beginning of the filename on the line, rather than at the
+beginning of the line.
+
+   For extra convenience, <SPC> and `n' in Dired are equivalent to
+`C-n'.  `p' is equivalent to `C-p'.  Moving by lines is done so often
+in Dired that it deserves to be easy to type.  <DEL> (move up and
+unflag) is often useful simply for moving up.
+
+   The `g' command in Dired runs `revert-buffer' to reinitialize the
+buffer from the actual disk directory and show any changes made in the
+directory by programs other than Dired.  All deletion flags in the Dired
+buffer are lost when this is done.