Clarify the expand-file-name doc string

* src/fileio.c (Fexpand_file_name): Clarify that "~" in NAME is
expanded, and not just "~/".  Also clarify that ~USER is not
expanded if USER doesn't exist (bug#36490).
This commit is contained in:
Lars Ingebrigtsen 2019-07-11 17:10:52 +02:00
parent 1c3b320614
commit aecc82d7eb

View file

@ -745,16 +745,22 @@ a directory's file name are accepted. If DEFAULT-DIRECTORY is nil or
missing, the current buffer's value of `default-directory' is used.
NAME should be a string that is a valid file name for the underlying
filesystem.
File name components that are `.' are removed, and
so are file name components followed by `..', along with the `..' itself;
note that these simplifications are done without checking the resulting
file names in the file system.
Multiple consecutive slashes are collapsed into a single slash,
except at the beginning of the file name when they are significant (e.g.,
UNC file names on MS-Windows.)
An initial `~/' expands to your home directory.
An initial `~USER/' expands to USER's home directory.
See also the function `substitute-in-file-name'.
File name components that are `.' are removed, and so are file name
components followed by `..', along with the `..' itself; note that
these simplifications are done without checking the resulting file
names in the file system.
Multiple consecutive slashes are collapsed into a single slash, except
at the beginning of the file name when they are significant (e.g., UNC
file names on MS-Windows.)
An initial \"~\" in NAME expands to your home directory.
An initial \"~USER\" in NAME expands to USER's home directory. If
USER doesn't exist, \"~USER\" is not expanded.
To do other file name substitutions, see `substitute-in-file-name'.
For technical reasons, this function can return correct but
non-intuitive results for the root directory; for instance,