GNU Info

Info Node: (elisp)Standard File Names

(elisp)Standard File Names


Prev: File Name Completion Up: File Names
Enter node , (file) or (file)node

Standard File Names
-------------------

   Most of the file names used in Lisp programs are entered by the user.
But occasionally a Lisp program needs to specify a standard file name
for a particular use--typically, to hold customization information
about each user.  For example, abbrev definitions are stored (by
default) in the file `~/.abbrev_defs'; the `completion' package stores
completions in the file `~/.completions'.  These are two of the many
standard file names used by parts of Emacs for certain purposes.

   Various operating systems have their own conventions for valid file
names and for which file names to use for user profile data.  A Lisp
program which reads a file using a standard file name ought to use, on
each type of system, a file name suitable for that system.  The function
`convert-standard-filename' makes this easy to do.

 - Function: convert-standard-filename filename
     This function alters the file name FILENAME to fit the conventions
     of the operating system in use, and returns the result as a new
     string.

   The recommended way to specify a standard file name in a Lisp program
is to choose a name which fits the conventions of GNU and Unix systems,
usually with a nondirectory part that starts with a period, and pass it
to `convert-standard-filename' instead of using it directly.  Here is
an example from the `completion' package:

     (defvar save-completions-file-name
             (convert-standard-filename "~/.completions")
       "*The file name to save completions to.")

   On GNU and Unix systems, and on some other systems as well,
`convert-standard-filename' returns its argument unchanged.  On some
other systems, it alters the name to fit the system's conventions.

   For example, on MS-DOS the alterations made by this function include
converting a leading `.'  to `_', converting a `_' in the middle of the
name to `.' if there is no other `.', inserting a `.' after eight
characters if there is none, and truncating to three characters after
the `.'.  (It makes other changes as well.)  Thus, `.abbrev_defs'
becomes `_abbrev.def', and `.completions' becomes `_complet.ion'.


automatically generated by info2www version 1.2.2.9