*** /tmp/ediffq2yDYg 2019-03-06 10:49:17.961600214 +0100 --- /home/albinus/src/emacs-26/doc/lispref/files.texi 2019-03-06 10:39:51.804376822 +0100 *************** *** 16,22 **** names. A file name is a string. Most of these functions expand file name arguments using the function @code{expand-file-name}, so that @file{~} is handled correctly, as are relative file names (including ! @file{../}). @xref{File Name Expansion}. In addition, certain @dfn{magic} file names are handled specially. For example, when a remote file name is specified, Emacs accesses the --- 16,22 ---- names. A file name is a string. Most of these functions expand file name arguments using the function @code{expand-file-name}, so that @file{~} is handled correctly, as are relative file names (including ! @file{../} and the empty string). @xref{File Name Expansion}. In addition, certain @dfn{magic} file names are handled specially. For example, when a remote file name is specified, Emacs accesses the *************** *** 2409,2414 **** --- 2409,2425 ---- superroot above the root directory @file{/}. On other filesystems, @file{/../} is interpreted exactly the same as @file{/}. + Expanding @file{.} or the empty string returns the default directory: + + @example + @group + (expand-file-name "." "/usr/spool/") + @result{} "/usr/spool" + (expand-file-name "" "/usr/spool/") + @result{} "/usr/spool" + @end group + @end example + Note that @code{expand-file-name} does @emph{not} expand environment variables; only @code{substitute-in-file-name} does that: