(M-08360): Separate C3-407E; add mappings for U-0002F87E.
[chise/xemacs-chise.git] / info / lispref.info-23
index 35745c5..67be103 100644 (file)
@@ -1,4 +1,4 @@
-This is ../info/lispref.info, produced by makeinfo version 4.0 from
+This is ../info/lispref.info, produced by makeinfo version 4.0b from
 lispref/lispref.texi.
 
 INFO-DIR-SECTION XEmacs Editor
@@ -50,6 +50,575 @@ may be included in a translation approved by the Free Software
 Foundation instead of in the original English.
 
 \1f
+File: lispref.info,  Node: Help Functions,  Next: Obsoleteness,  Prev: Describing Characters,  Up: Documentation
+
+Help Functions
+==============
+
+   XEmacs provides a variety of on-line help functions, all accessible
+to the user as subcommands of the prefix `C-h', or on some keyboards,
+`help'.  For more information about them, see *Note Help: (emacs)Help.
+Here we describe some program-level interfaces to the same information.
+
+ - Command: apropos regexp &optional do-all predicate
+     This function finds all symbols whose names contain a match for the
+     regular expression REGEXP, and returns a list of them (*note
+     Regular Expressions::).  It also displays the symbols in a buffer
+     named `*Help*', each with a one-line description.
+
+     If DO-ALL is non-`nil', then `apropos' also shows key bindings for
+     the functions that are found.
+
+     If PREDICATE is non-`nil', it should be a function to be called on
+     each symbol that has matched REGEXP.  Only symbols for which
+     PREDICATE returns a non-`nil' value are listed or displayed.
+
+     In the first of the following examples, `apropos' finds all the
+     symbols with names containing `exec'.  In the second example, it
+     finds and returns only those symbols that are also commands.  (We
+     don't show the output that results in the `*Help*' buffer.)
+
+          (apropos "exec")
+               => (Buffer-menu-execute command-execute exec-directory
+              exec-path execute-extended-command execute-kbd-macro
+              executing-kbd-macro executing-macro)
+          
+          (apropos "exec" nil 'commandp)
+               => (Buffer-menu-execute execute-extended-command)
+
+     `apropos' is used by various user-level commands, such as `C-h a'
+     (`hyper-apropos'), a graphical front-end to `apropos'; and `C-h A'
+     (`command-apropos'), which does an apropos over only those
+     functions which are user commands.  `command-apropos' calls
+     `apropos', specifying a PREDICATE to restrict the output to
+     symbols that are commands.  The call to `apropos' looks like this:
+
+          (apropos string t 'commandp)
+
+ - Variable: help-map
+     The value of this variable is a local keymap for characters
+     following the Help key, `C-h'.
+
+ - Prefix Command: help-command
+     This symbol is not a function; its function definition is actually
+     the keymap known as `help-map'.  It is defined in `help.el' as
+     follows:
+
+          (define-key global-map "\C-h" 'help-command)
+          (fset 'help-command help-map)
+
+ - Function: print-help-return-message &optional function
+     This function builds a string that explains how to restore the
+     previous state of the windows after a help command.  After
+     building the message, it applies FUNCTION to it if FUNCTION is
+     non-`nil'.  Otherwise it calls `message' to display it in the echo
+     area.
+
+     This function expects to be called inside a
+     `with-output-to-temp-buffer' special form, and expects
+     `standard-output' to have the value bound by that special form.
+     For an example of its use, see the long example in *Note Accessing
+     Documentation::.
+
+ - Variable: help-char
+     The value of this variable is the help character--the character
+     that XEmacs recognizes as meaning Help.  By default, it is the
+     character `?\^H' (ASCII 8), which is `C-h'.  When XEmacs reads this
+     character, if `help-form' is non-`nil' Lisp expression, it
+     evaluates that expression, and displays the result in a window if
+     it is a string.
+
+     `help-char' can be a character or a key description such as `help'
+     or `(meta h)'.
+
+     Usually the value of `help-form''s value is `nil'.  Then the help
+     character has no special meaning at the level of command input, and
+     it becomes part of a key sequence in the normal way.  The standard
+     key binding of `C-h' is a prefix key for several general-purpose
+     help features.
+
+     The help character is special after prefix keys, too.  If it has no
+     binding as a subcommand of the prefix key, it runs
+     `describe-prefix-bindings', which displays a list of all the
+     subcommands of the prefix key.
+
+ - Variable: help-form
+     If this variable is non-`nil', its value is a form to evaluate
+     whenever the character `help-char' is read.  If evaluating the form
+     produces a string, that string is displayed.
+
+     A command that calls `next-command-event' or `next-event' probably
+     should bind `help-form' to a non-`nil' expression while it does
+     input.  (The exception is when `C-h' is meaningful input.)
+     Evaluating this expression should result in a string that explains
+     what the input is for and how to enter it properly.
+
+     Entry to the minibuffer binds this variable to the value of
+     `minibuffer-help-form' (*note Minibuffer Misc::).
+
+ - Variable: prefix-help-command
+     This variable holds a function to print help for a prefix
+     character.  The function is called when the user types a prefix
+     key followed by the help character, and the help character has no
+     binding after that prefix.  The variable's default value is
+     `describe-prefix-bindings'.
+
+ - Command: describe-prefix-bindings
+     This function calls `describe-bindings' to display a list of all
+     the subcommands of the prefix key of the most recent key sequence.
+     The prefix described consists of all but the last event of that
+     key sequence.  (The last event is, presumably, the help character.)
+
+   The following two functions are found in the library `helper'.  They
+are for modes that want to provide help without relinquishing control,
+such as the "electric" modes.  You must load that library with
+`(require 'helper)' in order to use them.  Their names begin with
+`Helper' to distinguish them from the ordinary help functions.
+
+ - Command: Helper-describe-bindings
+     This command pops up a window displaying a help buffer containing a
+     listing of all of the key bindings from both the local and global
+     keymaps.  It works by calling `describe-bindings'.
+
+ - Command: Helper-help
+     This command provides help for the current mode.  It prompts the
+     user in the minibuffer with the message `Help (Type ? for further
+     options)', and then provides assistance in finding out what the key
+     bindings are, and what the mode is intended for.  It returns `nil'.
+
+     This can be customized by changing the map `Helper-help-map'.
+
+\1f
+File: lispref.info,  Node: Obsoleteness,  Prev: Help Functions,  Up: Documentation
+
+Obsoleteness
+============
+
+   As you add functionality to a package, you may at times want to
+replace an older function with a new one.  To preserve compatibility
+with existing code, the older function needs to still exist; but users
+of that function should be told to use the newer one instead.  XEmacs
+Lisp lets you mark a function or variable as "obsolete", and indicate
+what should be used instead.
+
+ - Command: make-obsolete function new
+     This function indicates that FUNCTION is an obsolete function, and
+     the function NEW should be used instead.  The byte compiler will
+     issue a warning to this effect when it encounters a usage of the
+     older function, and the help system will also note this in the
+     function's documentation.  NEW can also be a string (if there is
+     not a single function with the same functionality any more), and
+     should be a descriptive statement, such as "use FOO or BAR
+     instead" or "this function is unnecessary".
+
+ - Command: make-obsolete-variable variable new
+     This is like `make-obsolete' but is for variables instead of
+     functions.
+
+ - Function: define-obsolete-function-alias oldfun newfun
+     This function combines `make-obsolete' and `define-function',
+     declaring OLDFUN to be an obsolete variant of NEWFUN and defining
+     OLDFUN as an alias for NEWFUN.
+
+ - Function: define-obsolete-variable-alias oldvar newvar
+     This is like `define-obsolete-function-alias' but for variables.
+
+   Note that you should not normally put obsoleteness information
+explicitly in a function or variable's doc string.  The obsoleteness
+information that you specify using the above functions will be displayed
+whenever the doc string is displayed, and by adding it explicitly the
+result is redundancy.
+
+   Also, if an obsolete function is substantially the same as a newer
+one but is not actually an alias, you should consider omitting the doc
+string entirely (use a null string `""' as the doc string).  That way,
+the user is told about the obsoleteness and is forced to look at the
+documentation of the new function, making it more likely that he will
+use the new function.
+
+ - Function: function-obsoleteness-doc function
+     If FUNCTION is obsolete, this function returns a string describing
+     this.  This is the message that is printed out during byte
+     compilation or in the function's documentation.  If FUNCTION is
+     not obsolete, `nil' is returned.
+
+ - Function: variable-obsoleteness-doc variable
+     This is like `function-obsoleteness-doc' but for variables.
+
+   The obsoleteness information is stored internally by putting a
+property `byte-obsolete-info' (for functions) or
+`byte-obsolete-variable' (for variables) on the symbol that specifies
+the obsolete function or variable.  For more information, see the
+implementation of `make-obsolete' and `make-obsolete-variable' in
+`lisp/bytecomp/bytecomp-runtime.el'.
+
+\1f
+File: lispref.info,  Node: Files,  Next: Backups and Auto-Saving,  Prev: Documentation,  Up: Top
+
+Files
+*****
+
+   In XEmacs, you can find, create, view, save, and otherwise work with
+files and file directories.  This chapter describes most of the
+file-related functions of XEmacs Lisp, but a few others are described in
+*Note Buffers::, and those related to backups and auto-saving are
+described in *Note Backups and Auto-Saving::.
+
+   Many of the file functions take one or more arguments that are file
+names.  A file name is actually a string.  Most of these functions
+expand file name arguments using `expand-file-name', so that `~' is
+handled correctly, as are relative file names (including `../').  These
+functions don't recognize environment variable substitutions such as
+`$HOME'.  *Note File Name Expansion::.
+
+* Menu:
+
+* Visiting Files::           Reading files into Emacs buffers for editing.
+* Saving Buffers::           Writing changed buffers back into files.
+* Reading from Files::       Reading files into buffers without visiting.
+* Writing to Files::         Writing new files from parts of buffers.
+* File Locks::               Locking and unlocking files, to prevent
+                               simultaneous editing by two people.
+* Information about Files::  Testing existence, accessibility, size of files.
+* Changing File Attributes:: Renaming files, changing protection, etc.
+* File Names::               Decomposing and expanding file names.
+* Contents of Directories::  Getting a list of the files in a directory.
+* Create/Delete Dirs::      Creating and Deleting Directories.
+* Magic File Names::        Defining "magic" special handling
+                              for certain file names.
+* Partial Files::            Treating a section of a buffer as a file.
+* Format Conversion::        Conversion to and from various file formats.
+* Files and MS-DOS::         Distinguishing text and binary files on MS-DOS.
+
+\1f
+File: lispref.info,  Node: Visiting Files,  Next: Saving Buffers,  Up: Files
+
+Visiting Files
+==============
+
+   Visiting a file means reading a file into a buffer.  Once this is
+done, we say that the buffer is "visiting" that file, and call the file
+"the visited file" of the buffer.
+
+   A file and a buffer are two different things.  A file is information
+recorded permanently in the computer (unless you delete it).  A buffer,
+on the other hand, is information inside of XEmacs that will vanish at
+the end of the editing session (or when you kill the buffer).  Usually,
+a buffer contains information that you have copied from a file; then we
+say the buffer is visiting that file.  The copy in the buffer is what
+you modify with editing commands.  Such changes to the buffer do not
+change the file; therefore, to make the changes permanent, you must
+"save" the buffer, which means copying the altered buffer contents back
+into the file.
+
+   In spite of the distinction between files and buffers, people often
+refer to a file when they mean a buffer and vice-versa.  Indeed, we say,
+"I am editing a file," rather than, "I am editing a buffer that I will
+soon save as a file of the same name."  Humans do not usually need to
+make the distinction explicit.  When dealing with a computer program,
+however, it is good to keep the distinction in mind.
+
+* Menu:
+
+* Visiting Functions::         The usual interface functions for visiting.
+* Subroutines of Visiting::    Lower-level subroutines that they use.
+
+\1f
+File: lispref.info,  Node: Visiting Functions,  Next: Subroutines of Visiting,  Up: Visiting Files
+
+Functions for Visiting Files
+----------------------------
+
+   This section describes the functions normally used to visit files.
+For historical reasons, these functions have names starting with
+`find-' rather than `visit-'.  *Note Buffer File Name::, for functions
+and variables that access the visited file name of a buffer or that
+find an existing buffer by its visited file name.
+
+   In a Lisp program, if you want to look at the contents of a file but
+not alter it, the fastest way is to use `insert-file-contents' in a
+temporary buffer.  Visiting the file is not necessary and takes longer.
+*Note Reading from Files::.
+
+ - Command: find-file filename
+     This command selects a buffer visiting the file FILENAME, using an
+     existing buffer if there is one, and otherwise creating a new
+     buffer and reading the file into it.  It also returns that buffer.
+
+     The body of the `find-file' function is very simple and looks like
+     this:
+
+          (switch-to-buffer (find-file-noselect filename))
+
+     (See `switch-to-buffer' in *Note Displaying Buffers::.)
+
+     When `find-file' is called interactively, it prompts for FILENAME
+     in the minibuffer.
+
+ - Function: find-file-noselect filename &optional nowarn
+     This function is the guts of all the file-visiting functions.  It
+     finds or creates a buffer visiting the file FILENAME, and returns
+     it.  It uses an existing buffer if there is one, and otherwise
+     creates a new buffer and reads the file into it.  You may make the
+     buffer current or display it in a window if you wish, but this
+     function does not do so.
+
+     When `find-file-noselect' uses an existing buffer, it first
+     verifies that the file has not changed since it was last visited or
+     saved in that buffer.  If the file has changed, then this function
+     asks the user whether to reread the changed file.  If the user says
+     `yes', any changes previously made in the buffer are lost.
+
+     If `find-file-noselect' needs to create a buffer, and there is no
+     file named FILENAME, it displays the message `New file' in the
+     echo area, and leaves the buffer empty.
+
+     If NOWARN is non-`nil', various warnings that XEmacs normally
+     gives (e.g. if another buffer is already visiting FILENAME but
+     FILENAME has been removed from disk since that buffer was created)
+     are suppressed.
+
+     The `find-file-noselect' function calls `after-find-file' after
+     reading the file (*note Subroutines of Visiting::).  That function
+     sets the buffer major mode, parses local variables, warns the user
+     if there exists an auto-save file more recent than the file just
+     visited, and finishes by running the functions in
+     `find-file-hooks'.
+
+     The `find-file-noselect' function returns the buffer that is
+     visiting the file FILENAME.
+
+          (find-file-noselect "/etc/fstab")
+               => #<buffer fstab>
+
+ - Command: find-file-other-window filename
+     This command selects a buffer visiting the file FILENAME, but does
+     so in a window other than the selected window.  It may use another
+     existing window or split a window; see *Note Displaying Buffers::.
+
+     When this command is called interactively, it prompts for FILENAME.
+
+ - Command: find-file-read-only filename
+     This command selects a buffer visiting the file FILENAME, like
+     `find-file', but it marks the buffer as read-only.  *Note Read
+     Only Buffers::, for related functions and variables.
+
+     When this command is called interactively, it prompts for FILENAME.
+
+ - Command: view-file filename &optional other-window-p
+     This command visits FILENAME in View mode, and displays it in a
+     recursive edit, returning to the previous buffer when done.  View
+     mode is a mode that allows you to skim rapidly through the file
+     but does not let you modify it.  Entering View mode runs the
+     normal hook `view-mode-hook'.  *Note Hooks::.
+
+     When `view-file' is called interactively, it prompts for FILENAME.
+
+     With non-`nil' prefix arg OTHER-WINDOW-P, visit FILENAME in
+     another window.
+
+ - Variable: find-file-hooks
+     The value of this variable is a list of functions to be called
+     after a file is visited.  The file's local-variables specification
+     (if any) will have been processed before the hooks are run.  The
+     buffer visiting the file is current when the hook functions are
+     run.
+
+     This variable works just like a normal hook, but we think that
+     renaming it would not be advisable.
+
+ - Variable: find-file-not-found-hooks
+     The value of this variable is a list of functions to be called when
+     `find-file' or `find-file-noselect' is passed a nonexistent file
+     name.  `find-file-noselect' calls these functions as soon as it
+     detects a nonexistent file.  It calls them in the order of the
+     list, until one of them returns non-`nil'.  `buffer-file-name' is
+     already set up.
+
+     This is not a normal hook because the values of the functions are
+     used and they may not all be called.
+
+\1f
+File: lispref.info,  Node: Subroutines of Visiting,  Prev: Visiting Functions,  Up: Visiting Files
+
+Subroutines of Visiting
+-----------------------
+
+   The `find-file-noselect' function uses the `create-file-buffer' and
+`after-find-file' functions as subroutines.  Sometimes it is useful to
+call them directly.
+
+ - Function: create-file-buffer filename
+     This function creates a suitably named buffer for visiting
+     FILENAME, and returns it.  It uses FILENAME (sans directory) as
+     the name if that name is free; otherwise, it appends a string such
+     as `<2>' to get an unused name.  See also *Note Creating Buffers::.
+
+     *Please note:* `create-file-buffer' does _not_ associate the new
+     buffer with a file and does not select the buffer.  It also does
+     not use the default major mode.
+
+          (create-file-buffer "foo")
+               => #<buffer foo>
+          (create-file-buffer "foo")
+               => #<buffer foo<2>>
+          (create-file-buffer "foo")
+               => #<buffer foo<3>>
+
+     This function is used by `find-file-noselect'.  It uses
+     `generate-new-buffer' (*note Creating Buffers::).
+
+ - Function: after-find-file &optional error warn noauto
+     This function sets the buffer major mode, and parses local
+     variables (*note Auto Major Mode::).  It is called by
+     `find-file-noselect' and by the default revert function (*note
+     Reverting::).
+
+     If reading the file got an error because the file does not exist,
+     but its directory does exist, the caller should pass a non-`nil'
+     value for ERROR.  In that case, `after-find-file' issues a warning:
+     `(New File)'.  For more serious errors, the caller should usually
+     not call `after-find-file'.
+
+     If WARN is non-`nil', then this function issues a warning if an
+     auto-save file exists and is more recent than the visited file.
+
+     If NOAUTO is non-`nil', then this function does not turn on
+     auto-save mode; otherwise, it does.
+
+     The last thing `after-find-file' does is call all the functions in
+     `find-file-hooks'.
+
+\1f
+File: lispref.info,  Node: Saving Buffers,  Next: Reading from Files,  Prev: Visiting Files,  Up: Files
+
+Saving Buffers
+==============
+
+   When you edit a file in XEmacs, you are actually working on a buffer
+that is visiting that file--that is, the contents of the file are
+copied into the buffer and the copy is what you edit.  Changes to the
+buffer do not change the file until you "save" the buffer, which means
+copying the contents of the buffer into the file.
+
+ - Command: save-buffer &optional backup-option
+     This function saves the contents of the current buffer in its
+     visited file if the buffer has been modified since it was last
+     visited or saved.  Otherwise it does nothing.
+
+     `save-buffer' is responsible for making backup files.  Normally,
+     BACKUP-OPTION is `nil', and `save-buffer' makes a backup file only
+     if this is the first save since visiting the file.  Other values
+     for BACKUP-OPTION request the making of backup files in other
+     circumstances:
+
+        * With an argument of 4 or 64, reflecting 1 or 3 `C-u''s, the
+          `save-buffer' function marks this version of the file to be
+          backed up when the buffer is next saved.
+
+        * With an argument of 16 or 64, reflecting 2 or 3 `C-u''s, the
+          `save-buffer' function unconditionally backs up the previous
+          version of the file before saving it.
+
+ - Command: save-some-buffers &optional save-silently-p exiting
+     This command saves some modified file-visiting buffers.  Normally
+     it asks the user about each buffer.  But if SAVE-SILENTLY-P is
+     non-`nil', it saves all the file-visiting buffers without querying
+     the user.
+
+     The optional EXITING argument, if non-`nil', requests this
+     function to offer also to save certain other buffers that are not
+     visiting files.  These are buffers that have a non-`nil' local
+     value of `buffer-offer-save'.  (A user who says yes to saving one
+     of these is asked to specify a file name to use.)  The
+     `save-buffers-kill-emacs' function passes a non-`nil' value for
+     this argument.
+
+ - Variable: buffer-offer-save
+     When this variable is non-`nil' in a buffer, XEmacs offers to save
+     the buffer on exit even if the buffer is not visiting a file.  The
+     variable is automatically local in all buffers.  Normally, Mail
+     mode (used for editing outgoing mail) sets this to `t'.
+
+ - Command: write-file filename
+     This function writes the current buffer into file FILENAME, makes
+     the buffer visit that file, and marks it not modified.  Then it
+     renames the buffer based on FILENAME, appending a string like `<2>'
+     if necessary to make a unique buffer name.  It does most of this
+     work by calling `set-visited-file-name' and `save-buffer'.
+
+ - Variable: write-file-hooks
+     The value of this variable is a list of functions to be called
+     before writing out a buffer to its visited file.  If one of them
+     returns non-`nil', the file is considered already written and the
+     rest of the functions are not called, nor is the usual code for
+     writing the file executed.
+
+     If a function in `write-file-hooks' returns non-`nil', it is
+     responsible for making a backup file (if that is appropriate).  To
+     do so, execute the following code:
+
+          (or buffer-backed-up (backup-buffer))
+
+     You might wish to save the file modes value returned by
+     `backup-buffer' and use that to set the mode bits of the file that
+     you write.  This is what `save-buffer' normally does.
+
+     Even though this is not a normal hook, you can use `add-hook' and
+     `remove-hook' to manipulate the list.  *Note Hooks::.
+
+ - Variable: local-write-file-hooks
+     This works just like `write-file-hooks', but it is intended to be
+     made local to particular buffers.  It's not a good idea to make
+     `write-file-hooks' local to a buffer--use this variable instead.
+
+     The variable is marked as a permanent local, so that changing the
+     major mode does not alter a buffer-local value.  This is
+     convenient for packages that read "file" contents in special ways,
+     and set up hooks to save the data in a corresponding way.
+
+ - Variable: write-contents-hooks
+     This works just like `write-file-hooks', but it is intended for
+     hooks that pertain to the contents of the file, as opposed to
+     hooks that pertain to where the file came from.  Such hooks are
+     usually set up by major modes, as buffer-local bindings for this
+     variable.  Switching to a new major mode always resets this
+     variable.
+
+ - Variable: after-save-hook
+     This normal hook runs after a buffer has been saved in its visited
+     file.
+
+ - Variable: file-precious-flag
+     If this variable is non-`nil', then `save-buffer' protects against
+     I/O errors while saving by writing the new file to a temporary
+     name instead of the name it is supposed to have, and then renaming
+     it to the intended name after it is clear there are no errors.
+     This procedure prevents problems such as a lack of disk space from
+     resulting in an invalid file.
+
+     As a side effect, backups are necessarily made by copying.  *Note
+     Rename or Copy::.  Yet, at the same time, saving a precious file
+     always breaks all hard links between the file you save and other
+     file names.
+
+     Some modes set this variable non-`nil' locally in particular
+     buffers.
+
+ - User Option: require-final-newline
+     This variable determines whether files may be written out that do
+     _not_ end with a newline.  If the value of the variable is `t',
+     then `save-buffer' silently adds a newline at the end of the file
+     whenever the buffer being saved does not already end in one.  If
+     the value of the variable is non-`nil', but not `t', then
+     `save-buffer' asks the user whether to add a newline each time the
+     case arises.
+
+     If the value of the variable is `nil', then `save-buffer' doesn't
+     add newlines at all.  `nil' is the default value, but a few major
+     modes set it to `t' in particular buffers.
+
+\1f
 File: lispref.info,  Node: Reading from Files,  Next: Writing to Files,  Prev: Saving Buffers,  Up: Files
 
 Reading from Files
@@ -59,7 +628,7 @@ Reading from Files
 the `insert-file-contents' function.  Don't use the user-level command
 `insert-file' in a Lisp program, as that sets the mark.
 
- - Function: insert-file-contents filename &optional visit beg end
+ - Function: insert-file-contents filename &optional visit start end
           replace
      This function inserts the contents of file FILENAME into the
      current buffer after point.  It returns a list of the absolute
@@ -78,7 +647,7 @@ the `insert-file-contents' function.  Don't use the user-level command
      file name and its last save file modtime.  This feature is used by
      `find-file-noselect' and you probably should not use it yourself.
 
-     If BEG and END are non-`nil', they should be integers specifying
+     If START and END are non-`nil', they should be integers specifying
      the portion of the file to insert.  In this case, VISIT must be
      `nil'.  For example,
 
@@ -195,10 +764,10 @@ cases of simultaneous editing; see *Note Modification Time::.
      the file should not be locked, so this function does nothing.  It
      also does nothing if the current buffer is not visiting a file.
 
- - Function: ask-user-about-lock file other-user
-     This function is called when the user tries to modify FILE, but it
-     is locked by another user named OTHER-USER.  The value it returns
-     determines what happens next:
+ - Function: ask-user-about-lock filename other-user
+     This function is called when the user tries to modify FILENAME,
+     but it is locked by another user named OTHER-USER.  The value it
+     returns determines what happens next:
 
         * A value of `t' says to grab the lock on the file.  Then this
           user may edit the file and OTHER-USER loses the lock.
@@ -212,9 +781,9 @@ cases of simultaneous editing; see *Note Modification Time::.
 
           The error message for this error looks like this:
 
-               error--> File is locked: FILE OTHER-USER
+               error--> File is locked: FILENAME OTHER-USER
 
-          where `file' is the name of the file and OTHER-USER is the
+          where FILENAME is the name of the file and OTHER-USER is the
           name of the user who has locked the file.
 
      The default definition of this function asks the user to choose
@@ -567,695 +1136,3 @@ and modification.
     `-32252'
           is on file system number -32252.
 
-\1f
-File: lispref.info,  Node: Changing File Attributes,  Next: File Names,  Prev: Information about Files,  Up: Files
-
-Changing File Names and Attributes
-==================================
-
-   The functions in this section rename, copy, delete, link, and set the
-modes of files.
-
-   In the functions that have an argument NEWNAME, if a file by the
-name of NEWNAME already exists, the actions taken depend on the value
-of the argument OK-IF-ALREADY-EXISTS:
-
-   * Signal a `file-already-exists' error if OK-IF-ALREADY-EXISTS is
-     `nil'.
-
-   * Request confirmation if OK-IF-ALREADY-EXISTS is a number.
-
-   * Replace the old file without confirmation if OK-IF-ALREADY-EXISTS
-     is any other value.
-
- - Command: add-name-to-file oldname newname &optional
-          ok-if-already-exists
-     This function gives the file named OLDNAME the additional name
-     NEWNAME.  This means that NEWNAME becomes a new "hard link" to
-     OLDNAME.
-
-     In the first part of the following example, we list two files,
-     `foo' and `foo3'.
-
-          % ls -l fo*
-          -rw-rw-rw-  1 rms       29 Aug 18 20:32 foo
-          -rw-rw-rw-  1 rms       24 Aug 18 20:31 foo3
-
-     Then we evaluate the form `(add-name-to-file "~/lewis/foo"
-     "~/lewis/foo2")'.  Again we list the files.  This shows two names,
-     `foo' and `foo2'.
-
-          (add-name-to-file "~/lewis/foo1" "~/lewis/foo2")
-               => nil
-          
-          % ls -l fo*
-          -rw-rw-rw-  2 rms       29 Aug 18 20:32 foo
-          -rw-rw-rw-  2 rms       29 Aug 18 20:32 foo2
-          -rw-rw-rw-  1 rms       24 Aug 18 20:31 foo3
-
-     Finally, we evaluate the following:
-
-          (add-name-to-file "~/lewis/foo" "~/lewis/foo3" t)
-
-     and list the files again.  Now there are three names for one file:
-     `foo', `foo2', and `foo3'.  The old contents of `foo3' are lost.
-
-          (add-name-to-file "~/lewis/foo1" "~/lewis/foo3")
-               => nil
-          
-          % ls -l fo*
-          -rw-rw-rw-  3 rms       29 Aug 18 20:32 foo
-          -rw-rw-rw-  3 rms       29 Aug 18 20:32 foo2
-          -rw-rw-rw-  3 rms       29 Aug 18 20:32 foo3
-
-     This function is meaningless on VMS, where multiple names for one
-     file are not allowed.
-
-     See also `file-nlinks' in *Note File Attributes::.
-
- - Command: rename-file filename newname &optional ok-if-already-exists
-     This command renames the file FILENAME as NEWNAME.
-
-     If FILENAME has additional names aside from FILENAME, it continues
-     to have those names.  In fact, adding the name NEWNAME with
-     `add-name-to-file' and then deleting FILENAME has the same effect
-     as renaming, aside from momentary intermediate states.
-
-     In an interactive call, this function prompts for FILENAME and
-     NEWNAME in the minibuffer; also, it requests confirmation if
-     NEWNAME already exists.
-
- - Command: copy-file oldname newname &optional ok-if-exists time
-     This command copies the file OLDNAME to NEWNAME.  An error is
-     signaled if OLDNAME does not exist.
-
-     If TIME is non-`nil', then this functions gives the new file the
-     same last-modified time that the old one has.  (This works on only
-     some operating systems.)
-
-     In an interactive call, this function prompts for FILENAME and
-     NEWNAME in the minibuffer; also, it requests confirmation if
-     NEWNAME already exists.
-
- - Command: delete-file filename
-     This command deletes the file FILENAME, like the shell command `rm
-     FILENAME'.  If the file has multiple names, it continues to exist
-     under the other names.
-
-     A suitable kind of `file-error' error is signaled if the file does
-     not exist, or is not deletable.  (On Unix, a file is deletable if
-     its directory is writable.)
-
-     See also `delete-directory' in *Note Create/Delete Dirs::.
-
- - Command: make-symbolic-link filename newname &optional ok-if-exists
-     This command makes a symbolic link to FILENAME, named NEWNAME.
-     This is like the shell command `ln -s FILENAME NEWNAME'.
-
-     In an interactive call, this function prompts for FILENAME and
-     NEWNAME in the minibuffer; also, it requests confirmation if
-     NEWNAME already exists.
-
- - Function: define-logical-name varname string
-     This function defines the logical name NAME to have the value
-     STRING.  It is available only on VMS.
-
- - Function: set-file-modes filename mode
-     This function sets mode bits of FILENAME to MODE (which must be an
-     integer).  Only the low 12 bits of MODE are used.
-
- - Function: set-default-file-modes mode
-     This function sets the default file protection for new files
-     created by XEmacs and its subprocesses.  Every file created with
-     XEmacs initially has this protection.  On Unix, the default
-     protection is the bitwise complement of the "umask" value.
-
-     The argument MODE must be an integer.  Only the low 9 bits of MODE
-     are used.
-
-     Saving a modified version of an existing file does not count as
-     creating the file; it does not change the file's mode, and does
-     not use the default file protection.
-
- - Function: default-file-modes
-     This function returns the current default protection value.
-
-   On MS-DOS, there is no such thing as an "executable" file mode bit.
-So Emacs considers a file executable if its name ends in `.com', `.bat'
-or `.exe'.  This is reflected in the values returned by `file-modes'
-and `file-attributes'.
-
-\1f
-File: lispref.info,  Node: File Names,  Next: Contents of Directories,  Prev: Changing File Attributes,  Up: Files
-
-File Names
-==========
-
-   Files are generally referred to by their names, in XEmacs as
-elsewhere.  File names in XEmacs are represented as strings.  The
-functions that operate on a file all expect a file name argument.
-
-   In addition to operating on files themselves, XEmacs Lisp programs
-often need to operate on the names; i.e., to take them apart and to use
-part of a name to construct related file names.  This section describes
-how to manipulate file names.
-
-   The functions in this section do not actually access files, so they
-can operate on file names that do not refer to an existing file or
-directory.
-
-   On VMS, all these functions understand both VMS file-name syntax and
-Unix syntax.  This is so that all the standard Lisp libraries can
-specify file names in Unix syntax and work properly on VMS without
-change.  On MS-DOS, these functions understand MS-DOS file-name syntax
-as well as Unix syntax.
-
-* Menu:
-
-* File Name Components::  The directory part of a file name, and the rest.
-* Directory Names::       A directory's name as a directory
-                            is different from its name as a file.
-* Relative File Names::   Some file names are relative to a current directory.
-* File Name Expansion::   Converting relative file names to absolute ones.
-* Unique File Names::     Generating names for temporary files.
-* File Name Completion::  Finding the completions for a given file name.
-* User Name Completion::  Finding the completions for a given user name.
-
-\1f
-File: lispref.info,  Node: File Name Components,  Next: Directory Names,  Up: File Names
-
-File Name Components
---------------------
-
-   The operating system groups files into directories.  To specify a
-file, you must specify the directory and the file's name within that
-directory.  Therefore, XEmacs considers a file name as having two main
-parts: the "directory name" part, and the "nondirectory" part (or "file
-name within the directory").  Either part may be empty.  Concatenating
-these two parts reproduces the original file name.
-
-   On Unix, the directory part is everything up to and including the
-last slash; the nondirectory part is the rest.  The rules in VMS syntax
-are complicated.
-
-   For some purposes, the nondirectory part is further subdivided into
-the name proper and the "version number".  On Unix, only backup files
-have version numbers in their names; on VMS, every file has a version
-number, but most of the time the file name actually used in XEmacs
-omits the version number.  Version numbers are found mostly in
-directory lists.
-
- - Function: file-name-directory filename
-     This function returns the directory part of FILENAME (or `nil' if
-     FILENAME does not include a directory part).  On Unix, the
-     function returns a string ending in a slash.  On VMS, it returns a
-     string ending in one of the three characters `:', `]', or `>'.
-
-          (file-name-directory "lewis/foo")  ; Unix example
-               => "lewis/"
-          (file-name-directory "foo")        ; Unix example
-               => nil
-          (file-name-directory "[X]FOO.TMP") ; VMS example
-               => "[X]"
-
- - Function: file-name-nondirectory filename
-     This function returns the nondirectory part of FILENAME.
-
-          (file-name-nondirectory "lewis/foo")
-               => "foo"
-          (file-name-nondirectory "foo")
-               => "foo"
-          ;; The following example is accurate only on VMS.
-          (file-name-nondirectory "[X]FOO.TMP")
-               => "FOO.TMP"
-
- - Function: file-name-sans-versions filename &optional
-          keep-backup-version
-     This function returns FILENAME without any file version numbers,
-     backup version numbers, or trailing tildes.
-
-     If KEEP-BACKUP-VERSION is non-`nil', we do not remove backup
-     version numbers, only true file version numbers.
-
-          (file-name-sans-versions "~rms/foo.~1~")
-               => "~rms/foo"
-          (file-name-sans-versions "~rms/foo~")
-               => "~rms/foo"
-          (file-name-sans-versions "~rms/foo")
-               => "~rms/foo"
-          ;; The following example applies to VMS only.
-          (file-name-sans-versions "foo;23")
-               => "foo"
-
- - Function: file-name-sans-extension filename
-     This function returns FILENAME minus its "extension," if any.  The
-     extension, in a file name, is the part that starts with the last
-     `.' in the last name component.  For example,
-
-          (file-name-sans-extension "foo.lose.c")
-               => "foo.lose"
-          (file-name-sans-extension "big.hack/foo")
-               => "big.hack/foo"
-
-\1f
-File: lispref.info,  Node: Directory Names,  Next: Relative File Names,  Prev: File Name Components,  Up: File Names
-
-Directory Names
----------------
-
-   A "directory name" is the name of a directory.  A directory is a
-kind of file, and it has a file name, which is related to the directory
-name but not identical to it.  (This is not quite the same as the usual
-Unix terminology.)  These two different names for the same entity are
-related by a syntactic transformation.  On Unix, this is simple: a
-directory name ends in a slash, whereas the directory's name as a file
-lacks that slash.  On VMS, the relationship is more complicated.
-
-   The difference between a directory name and its name as a file is
-subtle but crucial.  When an XEmacs variable or function argument is
-described as being a directory name, a file name of a directory is not
-acceptable.
-
-   The following two functions convert between directory names and file
-names.  They do nothing special with environment variable substitutions
-such as `$HOME', and the constructs `~', and `..'.
-
- - Function: file-name-as-directory filename
-     This function returns a string representing FILENAME in a form
-     that the operating system will interpret as the name of a
-     directory.  In Unix, this means appending a slash to the string.
-     On VMS, the function converts a string of the form `[X]Y.DIR.1' to
-     the form `[X.Y]'.
-
-          (file-name-as-directory "~rms/lewis")
-               => "~rms/lewis/"
-
- - Function: directory-file-name dirname
-     This function returns a string representing DIRNAME in a form that
-     the operating system will interpret as the name of a file.  On
-     Unix, this means removing a final slash from the string.  On VMS,
-     the function converts a string of the form `[X.Y]' to `[X]Y.DIR.1'.
-
-          (directory-file-name "~lewis/")
-               => "~lewis"
-
-   Directory name abbreviations are useful for directories that are
-normally accessed through symbolic links.  Sometimes the users recognize
-primarily the link's name as "the name" of the directory, and find it
-annoying to see the directory's "real" name.  If you define the link
-name as an abbreviation for the "real" name, XEmacs shows users the
-abbreviation instead.
-
-   If you wish to convert a directory name to its abbreviation, use this
-function:
-
- - Function: abbreviate-file-name dirname &optional hack-homedir
-     This function applies abbreviations from `directory-abbrev-alist'
-     to its argument, and substitutes `~' for the user's home directory.
-
-     If HACK-HOMEDIR is non-`nil', then this also substitutes `~' for
-     the user's home directory.
-
-
- - Variable: directory-abbrev-alist
-     The variable `directory-abbrev-alist' contains an alist of
-     abbreviations to use for file directories.  Each element has the
-     form `(FROM . TO)', and says to replace FROM with TO when it
-     appears in a directory name.  The FROM string is actually a
-     regular expression; it should always start with `^'.  The function
-     `abbreviate-file-name' performs these substitutions.
-
-     You can set this variable in `site-init.el' to describe the
-     abbreviations appropriate for your site.
-
-     Here's an example, from a system on which file system `/home/fsf'
-     and so on are normally accessed through symbolic links named `/fsf'
-     and so on.
-
-          (("^/home/fsf" . "/fsf")
-           ("^/home/gp" . "/gp")
-           ("^/home/gd" . "/gd"))
-
-\1f
-File: lispref.info,  Node: Relative File Names,  Next: File Name Expansion,  Prev: Directory Names,  Up: File Names
-
-Absolute and Relative File Names
---------------------------------
-
-   All the directories in the file system form a tree starting at the
-root directory.  A file name can specify all the directory names
-starting from the root of the tree; then it is called an "absolute"
-file name.  Or it can specify the position of the file in the tree
-relative to a default directory; then it is called a "relative" file
-name.  On Unix, an absolute file name starts with a slash or a tilde
-(`~'), and a relative one does not.  The rules on VMS are complicated.
-
- - Function: file-name-absolute-p filename
-     This function returns `t' if file FILENAME is an absolute file
-     name, `nil' otherwise.  On VMS, this function understands both
-     Unix syntax and VMS syntax.
-
-          (file-name-absolute-p "~rms/foo")
-               => t
-          (file-name-absolute-p "rms/foo")
-               => nil
-          (file-name-absolute-p "/user/rms/foo")
-               => t
-
-\1f
-File: lispref.info,  Node: File Name Expansion,  Next: Unique File Names,  Prev: Relative File Names,  Up: File Names
-
-Functions that Expand Filenames
--------------------------------
-
-   "Expansion" of a file name means converting a relative file name to
-an absolute one.  Since this is done relative to a default directory,
-you must specify the default directory name as well as the file name to
-be expanded.  Expansion also simplifies file names by eliminating
-redundancies such as `./' and `NAME/../'.
-
- - Function: expand-file-name filename &optional directory
-     This function converts FILENAME to an absolute file name.  If
-     DIRECTORY is supplied, it is the directory to start with if
-     FILENAME is relative.  (The value of DIRECTORY should itself be an
-     absolute directory name; it may start with `~'.)  Otherwise, the
-     current buffer's value of `default-directory' is used.  For
-     example:
-
-          (expand-file-name "foo")
-               => "/xcssun/users/rms/lewis/foo"
-          (expand-file-name "../foo")
-               => "/xcssun/users/rms/foo"
-          (expand-file-name "foo" "/usr/spool/")
-               => "/usr/spool/foo"
-          (expand-file-name "$HOME/foo")
-               => "/xcssun/users/rms/lewis/$HOME/foo"
-
-     Filenames containing `.' or `..' are simplified to their canonical
-     form:
-
-          (expand-file-name "bar/../foo")
-               => "/xcssun/users/rms/lewis/foo"
-
-     `~/' at the beginning is expanded into the user's home directory.
-     A `/' or `~' following a `/'.
-
-     Note that `expand-file-name' does _not_ expand environment
-     variables; only `substitute-in-file-name' does that.
-
- - Function: file-relative-name filename &optional directory
-     This function does the inverse of expansion--it tries to return a
-     relative name that is equivalent to FILENAME when interpreted
-     relative to DIRECTORY.
-
-     If DIRECTORY is `nil' or omitted, the value of `default-directory'
-     is used.
-
-          (file-relative-name "/foo/bar" "/foo/")
-               => "bar")
-          (file-relative-name "/foo/bar" "/hack/")
-               => "../foo/bar")
-
- - Variable: default-directory
-     The value of this buffer-local variable is the default directory
-     for the current buffer.  It should be an absolute directory name;
-     it may start with `~'.  This variable is local in every buffer.
-
-     `expand-file-name' uses the default directory when its second
-     argument is `nil'.
-
-     On Unix systems, the value is always a string ending with a slash.
-
-          default-directory
-               => "/user/lewis/manual/"
-
- - Function: substitute-in-file-name filename
-     This function replaces environment variable references in FILENAME
-     with the environment variable values.  Following standard Unix
-     shell syntax, `$' is the prefix to substitute an environment
-     variable value.
-
-     The environment variable name is the series of alphanumeric
-     characters (including underscores) that follow the `$'.  If the
-     character following the `$' is a `{', then the variable name is
-     everything up to the matching `}'.
-
-     Here we assume that the environment variable `HOME', which holds
-     the user's home directory name, has value `/xcssun/users/rms'.
-
-          (substitute-in-file-name "$HOME/foo")
-               => "/xcssun/users/rms/foo"
-
-     After substitution, a `/' or `~' following a `/' is taken to be
-     the start of an absolute file name that overrides what precedes
-     it, so everything before that `/' or `~' is deleted.  For example:
-
-          (substitute-in-file-name "bar/~/foo")
-               => "~/foo"
-          (substitute-in-file-name "/usr/local/$HOME/foo")
-               => "/xcssun/users/rms/foo"
-
-     On VMS, `$' substitution is not done, so this function does nothing
-     on VMS except discard superfluous initial components as shown
-     above.
-
-\1f
-File: lispref.info,  Node: Unique File Names,  Next: File Name Completion,  Prev: File Name Expansion,  Up: File Names
-
-Generating Unique File Names
-----------------------------
-
-   Some programs need to write temporary files.  Here is the usual way
-to construct a name for such a file:
-
-     (make-temp-name (expand-file-name NAME-OF-APPLICATION (temp-directory)))
-
-Here we use `(temp-directory)' to specify a directory for temporary
-files--under Unix, it will normally evaluate to `"/tmp/"'.  The job of
-`make-temp-name' is to prevent two different users or two different
-processes from trying to use the same name.
-
- - Function: temp-directory
-     This function returns the name of the directory to use for
-     temporary files.  Under Unix, this will be the value of `TMPDIR',
-     defaulting to `/tmp'.  On Windows, this will be obtained from the
-     `TEMP' or `TMP' environment variables, defaulting to `/'.
-
-     Note that the `temp-directory' function does not exist under FSF
-     Emacs.
-
- - Function: make-temp-name prefix
-     This function generates a temporary file name starting with
-     PREFIX.  The Emacs process number forms part of the result, so
-     there is no danger of generating a name being used by another
-     process.
-
-          (make-temp-name "/tmp/foo")
-               => "/tmp/fooGaAQjC"
-
-     In addition, this function makes an attempt to choose a name that
-     does not specify an existing file.  To make this work, PREFIX
-     should be an absolute file name.
-
-     To avoid confusion, each Lisp application should preferably use a
-     unique PREFIX to `make-temp-name'.
-
-\1f
-File: lispref.info,  Node: File Name Completion,  Next: User Name Completion,  Prev: Unique File Names,  Up: File Names
-
-File Name Completion
---------------------
-
-   This section describes low-level subroutines for completing a file
-name.  For other completion functions, see *Note Completion::.
-
- - Function: file-name-all-completions partial-filename directory
-     This function returns a list of all possible completions for a file
-     whose name starts with PARTIAL-FILENAME in directory DIRECTORY.
-     The order of the completions is the order of the files in the
-     directory, which is unpredictable and conveys no useful
-     information.
-
-     The argument PARTIAL-FILENAME must be a file name containing no
-     directory part and no slash.  The current buffer's default
-     directory is prepended to DIRECTORY, if DIRECTORY is not absolute.
-
-     In the following example, suppose that the current default
-     directory, `~rms/lewis', has five files whose names begin with `f':
-     `foo', `file~', `file.c', `file.c.~1~', and `file.c.~2~'.
-
-          (file-name-all-completions "f" "")
-               => ("foo" "file~" "file.c.~2~"
-                          "file.c.~1~" "file.c")
-          
-          (file-name-all-completions "fo" "")
-               => ("foo")
-
- - Function: file-name-completion filename directory
-     This function completes the file name FILENAME in directory
-     DIRECTORY.  It returns the longest prefix common to all file names
-     in directory DIRECTORY that start with FILENAME.
-
-     If only one match exists and FILENAME matches it exactly, the
-     function returns `t'.  The function returns `nil' if directory
-     DIRECTORY contains no name starting with FILENAME.
-
-     In the following example, suppose that the current default
-     directory has five files whose names begin with `f': `foo',
-     `file~', `file.c', `file.c.~1~', and `file.c.~2~'.
-
-          (file-name-completion "fi" "")
-               => "file"
-          
-          (file-name-completion "file.c.~1" "")
-               => "file.c.~1~"
-          
-          (file-name-completion "file.c.~1~" "")
-               => t
-          
-          (file-name-completion "file.c.~3" "")
-               => nil
-
- - User Option: completion-ignored-extensions
-     `file-name-completion' usually ignores file names that end in any
-     string in this list.  It does not ignore them when all the possible
-     completions end in one of these suffixes or when a buffer showing
-     all possible completions is displayed.
-
-     A typical value might look like this:
-
-          completion-ignored-extensions
-               => (".o" ".elc" "~" ".dvi")
-
-\1f
-File: lispref.info,  Node: User Name Completion,  Prev: File Name Completion,  Up: File Names
-
-User Name Completion
---------------------
-
-   This section describes low-level subroutines for completing a user
-name.  For other completion functions, see *Note Completion::.
-
- - Function: user-name-all-completions partial-username
-     This function returns a list of all possible completions for a user
-     whose name starts with PARTIAL-USERNAME.  The order of the
-     completions is unpredictable and conveys no useful information.
-
-     The argument PARTIAL-USERNAME must be a partial user name
-     containing no tilde character and no slash.
-
- - Function: user-name-completion username
-     This function completes the user name USERNAME.  It returns the
-     longest prefix common to all user names that start with USERNAME.
-
-     If only one match exists and USERNAME matches it exactly, the
-     function returns `t'.  The function returns `nil' if no user name
-     starting with USERNAME exists.
-
- - Function: user-name-completion-1 username
-     This function completes the user name USERNAME, like
-     `user-name-completion', differing only in the return value.  This
-     function returns the cons of the completion returned by
-     `user-name-completion', and a boolean indicating whether that
-     completion was unique.
-
-\1f
-File: lispref.info,  Node: Contents of Directories,  Next: Create/Delete Dirs,  Prev: File Names,  Up: Files
-
-Contents of Directories
-=======================
-
-   A directory is a kind of file that contains other files entered under
-various names.  Directories are a feature of the file system.
-
-   XEmacs can list the names of the files in a directory as a Lisp list,
-or display the names in a buffer using the `ls' shell command.  In the
-latter case, it can optionally display information about each file,
-depending on the value of switches passed to the `ls' command.
-
- - Function: directory-files directory &optional full-name match-regexp
-          nosort files-only
-     This function returns a list of the names of the files in the
-     directory DIRECTORY.  By default, the list is in alphabetical
-     order.
-
-     If FULL-NAME is non-`nil', the function returns the files'
-     absolute file names.  Otherwise, it returns just the names
-     relative to the specified directory.
-
-     If MATCH-REGEXP is non-`nil', this function returns only those
-     file names that contain that regular expression--the other file
-     names are discarded from the list.
-
-     If NOSORT is non-`nil', `directory-files' does not sort the list,
-     so you get the file names in no particular order.  Use this if you
-     want the utmost possible speed and don't care what order the files
-     are processed in.  If the order of processing is visible to the
-     user, then the user will probably be happier if you do sort the
-     names.
-
-     If FILES-ONLY is the symbol `t', then only the "files" in the
-     directory will be returned; subdirectories will be excluded.  If
-     FILES-ONLY is not `nil' and not `t', then only the subdirectories
-     will be returned.  Otherwise, if FILES-ONLY is `nil' (the default)
-     then both files and subdirectories will be returned.
-
-          (directory-files "~lewis")
-               => ("#foo#" "#foo.el#" "." ".."
-                   "dired-mods.el" "files.texi"
-                   "files.texi.~1~")
-
-     An error is signaled if DIRECTORY is not the name of a directory
-     that can be read.
-
- - Function: insert-directory file switches &optional wildcard
-          full-directory-p
-     This function inserts (in the current buffer) a directory listing
-     for directory FILE, formatted with `ls' according to SWITCHES.  It
-     leaves point after the inserted text.
-
-     The argument FILE may be either a directory name or a file
-     specification including wildcard characters.  If WILDCARD is
-     non-`nil', that means treat FILE as a file specification with
-     wildcards.
-
-     If FULL-DIRECTORY-P is non-`nil', that means FILE is a directory
-     and switches do not contain `-d', so that the listing should show
-     the full contents of the directory.  (The `-d' option to `ls' says
-     to describe a directory itself rather than its contents.)
-
-     This function works by running a directory listing program whose
-     name is in the variable `insert-directory-program'.  If WILDCARD is
-     non-`nil', it also runs the shell specified by `shell-file-name',
-     to expand the wildcards.
-
- - Variable: insert-directory-program
-     This variable's value is the program to run to generate a
-     directory listing for the function `insert-directory'.
-
-\1f
-File: lispref.info,  Node: Create/Delete Dirs,  Next: Magic File Names,  Prev: Contents of Directories,  Up: Files
-
-Creating and Deleting Directories
-=================================
-
-   Most XEmacs Lisp file-manipulation functions get errors when used on
-files that are directories.  For example, you cannot delete a directory
-with `delete-file'.  These special functions exist to create and delete
-directories.
-
- - Command: make-directory dirname &optional parents
-     This function creates a directory named DIRNAME.  Interactively,
-     the default choice of directory to create is the current default
-     directory for file names.  That is useful when you have visited a
-     file in a nonexistent directory.
-
-     Non-interactively, optional argument PARENTS says whether to
-     create parent directories if they don't exist. (Interactively, this
-     always happens.)
-
- - Command: delete-directory dirname
-     This function deletes the directory named DIRNAME.  The function
-     `delete-file' does not work for files that are directories; you
-     must use `delete-directory' in that case.
-