@vindex load-path
The Emacs Lisp load path is specified by the variable
-@code{load-path}. Its value should be a list of directory names
+@code{load-path}. Its value should be a list of directories
(strings). These directories are searched, in the specified order, by
the @kbd{M-x load-library} command, the lower-level @code{load}
function, and other Emacs functions that find Emacs Lisp libraries. A
@item CDPATH
@vindex CDPATH, environment variable
Used by the @code{cd} command to search for the directory you specify,
-when you specify a relative directory name.
+when you specify a relative directory,
@item DBUS_SESSION_BUS_ADDRESS
@vindex DBUS_SESSION_BUS_ADDRESS, environment variable
Used by D-Bus when Emacs is compiled with it. Usually, there is no
@vindex custom-theme-load-path
If you want Emacs to look for Custom themes in some other directory,
-add the directory name to the list variable
+add the directory to the list variable
@code{custom-theme-load-path}. Its default value is
@code{(custom-theme-directory t)}; here, the symbol
@code{custom-theme-directory} has the special meaning of the value of
value to assign to that variable, when the specified major mode is
enabled. Instead of a mode name, you can specify @samp{nil}, which
means that the alist applies to any mode; or you can specify a
-subdirectory name (a string), in which case the alist applies to all
+subdirectory (a string), in which case the alist applies to all
files in that subdirectory.
Here's an example of a @file{.dir-locals.el} file:
@findex copy-file-locals-to-dir-locals
Instead of editing the @file{.dir-locals.el} file by hand, you can
use the command @kbd{M-x add-dir-local-variable}. This prompts for a
-mode or subdirectory name, and for variable and value, and adds the
+mode or subdirectory, and for variable and value, and adds the
entry defining the directory-local variable. @kbd{M-x
delete-dir-local-variable} deletes an entry. @kbd{M-x
copy-file-locals-to-dir-locals} copies the file-local variables in the
@kindex C-x d
@vindex dired-listing-switches
To invoke Dired, type @kbd{C-x d} (@code{dired}). This reads a
-directory name using the minibuffer, and opens a @dfn{Dired buffer}
+directory's name using the minibuffer, and opens a @dfn{Dired buffer}
listing the files in that directory. You can also supply a wildcard
file name pattern as the minibuffer argument, in which case the Dired
buffer lists all files matching that pattern. A wildcard may appear
the minibuffer (@pxref{Minibuffer History}).
You can also invoke Dired by giving @kbd{C-x C-f} (@code{find-file})
-a directory name.
+a directory's name.
The variable @code{dired-listing-switches} specifies the options to
give to @command{ls} for listing the directory; this string
@kindex + @r{(Dired)}
@findex dired-create-directory
The command @kbd{+} (@code{dired-create-directory}) reads a
-directory name, and creates that directory. It signals an error if
+directory's name, and creates that directory. It signals an error if
the directory already exists.
@cindex searching multiple files via Dired
its default directory is usually copied from the buffer that was
current at the time (@pxref{Select Buffer}). You can use the command
@kbd{M-x pwd} to see the value of @code{default-directory} in the
-current buffer. The command @kbd{M-x cd} prompts for a directory
+current buffer. The command @kbd{M-x cd} prompts for a directory's
name, and sets the buffer's @code{default-directory} to that directory
(doing this does not change the buffer's file name, if any).
@code{directory-free-space-program} with arguments
@code{directory-free-space-args}.
- The command @kbd{M-x delete-directory} prompts for a directory name
+ The command @kbd{M-x delete-directory} prompts for a directory's name
using the minibuffer, and deletes the directory if it is empty. If
the directory is not empty, you will be asked whether you want to
delete it recursively. On systems that have a ``Trash'' (or ``Recycle
In all these commands, if the argument @var{new} is just a directory
name, the real new name is in that directory, with the same
non-directory component as @var{old}. For example, the command
-@c FIXME: '/tmp' should be '/tmp/' because '/tmp'
-@c is not "just a directory name".
-@c And actually the fact that ``directory name'' must end in a slash
-@c is not explained anywhere in this manual. Moreover, it many times
-@c uses ``directory name'' in contexts where the string it alludes to
-@c will clearly _not_ end in a slash
-@w{@kbd{M-x rename-file @key{RET} ~/foo @key{RET} /tmp @key{RET}}}
-renames @file{~/foo} to @file{/tmp/foo}. All these
-commands ask for confirmation when the new file name already exists,
-too.
+@w{@kbd{M-x rename-file @key{RET} ~/foo @key{RET} /tmp/ @key{RET}}}
+renames @file{~/foo} to @file{/tmp/foo}. @xref{Directory Names,,,
+elisp, the Emacs Lisp Reference Manual}.
+
+All these commands ask for confirmation when the new file name already
+exists.
@findex copy-file
@cindex copying files
@item M-x file-cache-add-directory-list @key{RET} @var{variable} @key{RET}
Add each file name in each directory listed in @var{variable} to the
file name cache. @var{variable} should be a Lisp variable whose value
-is a list of directory names, like @code{load-path}.
+is a list of directories, like @code{load-path}.
@item M-x file-cache-clear-cache @key{RET}
Clear the cache; that is, remove all file names from it.
@end table
The speedbar can operate in various modes. Its default mode is
@dfn{File Display} mode, which shows the files in the current
directory of the selected window of the attached frame, one file per
-line. Clicking on a file name visits that file in the selected window
-of the attached frame, and clicking on a directory name shows that
+line. Clicking on a non-directory visits that file in the selected window
+of the attached frame, and clicking on a directory shows that
directory in the speedbar (@pxref{Mouse References}). Each line also
has a box, @samp{[+]} or @samp{<+>}, that you can click on to
@dfn{expand} the contents of that item. Expanding a directory adds
to all the files within a certain directory. @xref{Directory
Variables}.
+@item Directory Name
+On GNU and other Unix-like systems, directory names are strings that
+end in @samp{/}. For example, @file{/no-such-dir/} is a directory
+name whereas @file{/tmp} is not, even though @file{/tmp} names a file
+that happens to be a directory. On MS-DOS the relationship is more
+complicated. @xref{Directory Names,,, elisp, the Emacs Lisp Reference
+Manual}.
+
@item Dired
Dired is the Emacs facility that displays the contents of a file
directory and allows you to ``edit the directory'', performing
@xref{Search}.
@item Search Path
-A search path is a list of directory names, to be used for searching for
+A search path is a list of directories, to be used for searching for
files for certain purposes. For example, the variable @code{load-path}
holds a search path for finding Lisp library files. @xref{Lisp Libraries}.
@kindex C-x v d
@findex vc-dir
To use the VC Directory buffer, type @kbd{C-x v d} (@code{vc-dir}).
-This reads a directory name using the minibuffer, and switches to a VC
+This reads a directory's name using the minibuffer, and switches to a VC
Directory buffer for that directory. By default, the buffer is named
@file{*vc-dir*}. Its contents are described
@iftex
(either in the @var{cmd} argument to one of the above commands, or in
other contexts), Emacs searches for the program in the directories
specified by the variable @code{exec-path}. The value of this
-variable must be a list of directory names; the default value is
+variable must be a list of directories; the default value is
initialized from the environment variable @env{PATH} when Emacs is
started (@pxref{General Variables}).
@code{ffap-alternate-file}, analogous to @code{find-alternate-file}.
@item C-x d @var{directory} @key{RET}
@kindex C-x d @r{(FFAP)}
-Start Dired on @var{directory}, defaulting to the directory name at
+Start Dired on @var{directory}, defaulting to the directory at
point (@code{dired-at-point}).
@item C-x C-d
@code{ffap-list-directory}, analogous to @code{list-directory}.
@env{HOME} variable in the environment before starting Emacs; its
value will then override the above default behavior.
- Emacs on MS-DOS handles the directory name @file{/dev} specially,
+ Emacs on MS-DOS handles the name @file{/dev} specially,
because of a feature in the emulator libraries of DJGPP that pretends
I/O devices have names in that directory. We recommend that you avoid
using an actual directory named @file{/dev} on any disk.
archives known to Emacs. Each list element must have the form
@code{(@var{id} . @var{location})}, where @var{id} is the name of a
package archive and @var{location} is the @acronym{HTTP} address or
-directory name of the package archive. You can alter this list if you
+name of the package archive directory. You can alter this list if you
wish to use third party package archives---but do so at your own risk,
and use only third parties that you think you can trust!
By default, @kbd{C-c C-b} runs @TeX{} in the current directory. The
output of @TeX{} also goes in this directory. To run @TeX{} in a
different directory, change the variable @code{tex-directory} to the
-desired directory name. If your environment variable @env{TEXINPUTS}
-contains relative directory names, or if your files contains
+the desired directory. If your environment variable @env{TEXINPUTS}
+contains relative names, or if your files contains
@samp{\input} commands with relative file names, then
@code{tex-directory} @emph{must} be @code{"."} or you will get the
wrong results. Otherwise, it is safe to specify some other directory,
@defopt backup-directory-alist
This variable's value is an alist of filename patterns and backup
-directory names. Each element looks like
+directories. Each element looks like
@smallexample
(@var{regexp} . @var{directory})
@end smallexample
For the common case of all backups going into one directory, the alist
should contain a single element pairing @samp{"."} with the appropriate
-directory name.
+directory.
If this variable is @code{nil} (the default), or it fails to match a
filename, the backup is made in the original file's directory.
The position of point, as an integer (@pxref{Point}). No I/O.
@item D
-A directory name. The default is the current default directory of the
+A directory. The default is the current default directory of the
current buffer, @code{default-directory} (@pxref{File Name Expansion}).
Existing, Completion, Default, Prompt.
provides completion.
@item directory
-The value must be a directory name. The widget provides completion.
+The value must be a directory. The widget provides completion.
@item hook
The value must be a list of functions. This customization type is
image files. If an element is a string or a variable symbol whose
value is a string, the string is taken to be the name of a directory
to search. If an element is a variable symbol whose value is a list,
-that is taken to be a list of directory names to search.
+that is taken to be a list of directories to search.
The default is to search in the @file{images} subdirectory of the
directory specified by @code{data-directory}, then the directory
specified by @code{data-directory}, and finally in the directories in
@code{load-path}. Subdirectories are not automatically included in
the search, so if you put an image file in a subdirectory, you have to
-supply the subdirectory name explicitly. For example, to find the
+supply the subdirectory explicitly. For example, to find the
image @file{images/foo/bar.xpm} within @code{data-directory}, you
should specify the image as follows:
before overwriting an existing file. Interactively, confirmation is
required, unless the user supplies a prefix argument.
-@c FIXME: This disagrees with the doc string, which talks about
-@c directory names, not directories. See Bug#27986.
-If @var{filename} is an existing directory, or a symbolic link to one,
+If @var{filename} is a directory name (@pxref{Directory Names}),
@code{write-file} uses the name of the visited file, in directory
@var{filename}. If the buffer is not visiting a file, it uses the
buffer name instead.
@defun file-exists-p filename
This function returns @code{t} if a file named @var{filename} appears
to exist. This does not mean you can necessarily read the file, only
-that you can find out its attributes. (On Unix and GNU/Linux, this is
-true if the file exists and you have execute permission on the
-containing directories, regardless of the permissions of the file
-itself.)
+that you can find out its attributes. (On GNU and other POSIX-like
+systems, this is true if the file exists and you have execute
+permission on the containing directories, regardless of the
+permissions of the file itself.)
If the file does not exist, or if access control policies prevent you
from finding its attributes, this function returns @code{nil}.
-Directories are files, so @code{file-exists-p} returns @code{t} when
-given a directory name. However, because @code{file-exists-p} follows
+Directories are files, so @code{file-exists-p} can return @code{t} when
+given a directory. However, because @code{file-exists-p} follows
symbolic links, it returns @code{t} for a symbolic link
name only if the target file exists.
@end defun
@end defun
@defun file-executable-p filename
-This function returns @code{t} if a file named @var{filename} exists and
-you can execute it. It returns @code{nil} otherwise. On Unix and
-GNU/Linux, if the file is a directory, execute permission means you can
-check the existence and attributes of files inside the directory, and
-open those files if their modes permit.
+This function returns @code{t} if a file named @var{filename} exists
+and you can execute it. It returns @code{nil} otherwise. On GNU and
+other POSIX-like systems, if the file is a directory, execute
+permission means you can check the existence and attributes of files
+inside the directory, and open those files if their modes permit.
@end defun
@defun file-writable-p filename
executable file mode bit. So @code{file-modes} considers a file
executable if its name ends in one of the standard executable
extensions, such as @file{.com}, @file{.bat}, @file{.exe}, and some
-others. Files that begin with the Unix-standard @samp{#!} signature,
+others. Files that begin with the POSIX-standard @samp{#!} signature,
such as shell and Perl scripts, are also considered executable.
Directories are also reported as executable, for compatibility with
-Unix. These conventions are also followed by @code{file-attributes}
+POSIX@. These conventions are also followed by @code{file-attributes}
(@pxref{File Attributes}).
@end defun
symbolic link and not its target.
A suitable kind of @code{file-error} error is signaled if the file
-does not exist, or is not deletable. (On Unix and GNU/Linux, a file
-is deletable if its directory is writable.)
+does not exist, or is not deletable. (On GNU and other POSIX-like
+systems, a file is deletable if its directory is writable.)
If the optional argument @var{trash} is non-@code{nil} and the
variable @code{delete-by-moving-to-trash} is non-@code{nil}, this
Emacs and its subprocesses. Every file created with Emacs initially
has these permissions, or a subset of them (@code{write-region} will
not grant execute permissions even if the default file permissions
-allow execution). On Unix and GNU/Linux, the default permissions are
-given by the bitwise complement of the @samp{umask} value.
+allow execution). On GNU and other POSIX-like systems, the default
+permissions are given by the bitwise complement of the @samp{umask}
+value.
The argument @var{mode} should be an integer which specifies the
permissions, similar to @code{set-file-modes} above. Only the lowest
@cindex converting file names from/to MS-Windows syntax
On MS-DOS and MS-Windows, these functions (like the function that
actually operate on files) accept MS-DOS or MS-Windows file-name syntax,
-where backslashes separate the components, as well as Unix syntax; but
-they always return Unix syntax. This enables Lisp programs to specify
-file names in Unix syntax and work properly on all systems without
+where backslashes separate the components, as well as POSIX syntax; but
+they always return POSIX syntax. This enables Lisp programs to specify
+file names in POSIX syntax and work properly on all systems without
change.@footnote{In MS-Windows versions of Emacs compiled for the Cygwin
environment, you can use the functions
@code{cygwin-convert-file-name-to-windows} and
directory name (@pxref{Directory Names}), or @code{nil} if
@var{filename} does not include a directory part.
-On GNU and Unix systems, a string returned by this function always
+On GNU and other POSIX-like systems, a string returned by this function always
ends in a slash. On MS-DOS it can also end in a colon.
@example
@group
-(file-name-directory "lewis/foo") ; @r{Unix example}
+(file-name-directory "lewis/foo") ; @r{GNU example}
@result{} "lewis/"
@end group
@group
-(file-name-directory "foo") ; @r{Unix example}
+(file-name-directory "foo") ; @r{GNU example}
@result{} nil
@end group
@end example
starting from the root of the tree; then it is called an
@dfn{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
-@dfn{relative} file name. On Unix and GNU/Linux, an absolute file
-name starts with a @samp{/} or a @samp{~}
+@dfn{relative} file name. On GNU and other POSIX-like systems,
+after any leading @samp{~} has been expanded, an absolute file name
+starts with a @samp{/}
(@pxref{abbreviate-file-name}), and a relative one does not. On
MS-DOS and MS-Windows, an absolute file name starts with a slash or a
backslash, or with a drive specification @samp{@var{x}:/}, where
@cindex directory file name
@cindex file name of directory
- A @dfn{directory name} is the name of a directory. A directory is
-actually a kind of file, so it has a file name (called the
-@dfn{directory 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 GNU and Unix systems, this
-is simple: a directory name ends in a slash, whereas the directory
-file name lacks that slash. On MS-DOS the relationship is more
+ A @dfn{directory name} is a string that must name a directory if it
+names any file at all. A directory is actually a kind of file, and it
+has a file name (called the @dfn{directory file name}, which is
+related to the directory name but is typically not identical. (This
+is not quite the same as the usual POSIX terminology.) These two
+names for the same entity are related by a syntactic transformation.
+On GNU and other POSIX-like systems, this is simple: to obtain a
+directory name, append a @samp{/} to a directory file name that does
+not already end in @samp{/}. On MS-DOS the relationship is more
complicated.
- The difference between directory name and directory file name is
+ The difference between a directory name and a directory file name is
subtle but crucial. When an Emacs variable or function argument is
described as being a directory name, a directory file name is not
acceptable. When @code{file-name-directory} returns a string, that is
@defun directory-name-p filename
This function returns non-@code{nil} if @var{filename} ends with a
directory separator character. This is the forward slash @samp{/} on
-Unix and GNU systems; MS-Windows and MS-DOS recognize both the forward
-slash and the backslash @samp{\} as directory separators.
+GNU and other POSIX-like systems; MS-Windows and MS-DOS recognize both
+the forward slash and the backslash @samp{\} as directory separators.
@end defun
@defun directory-file-name dirname
This function returns a string representing @var{dirname} in a form
that the operating system will interpret as the name of a file (a
directory file name). On most systems, this means removing the final
-slash (or backslash) from the string.
+directory separators from the string, unless the string consists
+entirely of directory separators.
@example
@group
@dfn{Expanding} 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
+you must specify the default directory as well as the file name
to be expanded. It also involves expanding abbreviations like
@file{~/}
@ifnottex
@c Wordy to avoid overfull hbox. --rjc 15mar92
Here we assume that the environment variable @env{HOME}, which holds
-the user's home directory name, has value @samp{/xcssun/users/rms}.
+the user's home directory, has value @samp{/xcssun/users/rms}.
@example
@group
This function returns a file name based on @var{filename}, which fits
the conventions of the current operating system.
-On GNU and Unix systems, this simply returns @var{filename}. On other
-operating systems, it may enforce system-specific file name
+On GNU and other POSIX-like systems, this simply returns @var{filename}.
+On other operating systems, it may enforce system-specific file name
conventions; for example, on MS-DOS this function performs a variety
of changes to enforce MS-DOS file name limitations, including
converting any leading @samp{.} to @samp{_} and truncating to three
@var{switches} may be a string of options, or a list of strings
representing individual options.
-The argument @var{file} may be either a directory name or a file
+The argument @var{file} may be either a directory or a file
specification including wildcard characters. If @var{wildcard} is
non-@code{nil}, that means treat @var{file} as a file specification with
wildcards.
@defvar load-path
The value of this variable is a list of directories to search when
loading files with @code{load}. Each element is a string (which must be
-a directory name) or @code{nil} (which stands for the current working
+a directory) or @code{nil} (which stands for the current working
directory).
@end defvar
@code{load-path} based on the value of the environment variable.
The syntax of @env{EMACSLOADPATH} is the same as used for @code{PATH};
-directory names are separated by @samp{:} (or @samp{;}, on some
+directories are separated by @samp{:} (or @samp{;}, on some
operating systems).
@ignore
@c AFAICS, does not (yet) work right to specify non-absolute elements.
@defun parse-colon-path path
This function takes a search path string such as the value of
the @env{PATH} environment variable, and splits it at the separators,
-returning a list of directory names. @code{nil} in this list means
+returning a list of directories. @code{nil} in this list means
the current directory. Although the function's name says
``colon'', it actually uses the value of @code{path-separator}.
@findex --search-path
@item --search-path=@var{paths}
This option lets you specify search paths for your input files.
-@var{paths} is a list of directory names, separated from each other by a
+@var{paths} is a list of directories, separated by
either a colon or a semicolon, depending on the operating system.
@end table
The include path only affects C/C++ header files. Use the slot
@code{:header-match-regexp} to change it.
-The @code{:system-include-path} allows you to specify full directory
-names to include directories where system header files can be found.
+The @code{:system-include-path} allows you to specify absolute names
+of include directories where system header files can be found.
These will be applied to files in this project only.
With @code{:compile-command} you can provide a command which should be
@code{XFILESEARCHPATH} and @code{XUSERFILESEARCHPATH} should be a list
of file names separated by colons. @code{XAPPLRESDIR} should be a list
-of directory names separated by colons.
+of directories separated by colons.
Emacs searches for X resources:
Emacs has no way of knowing when the shell actually changes its
directory. This is an intrinsic limitation of Unix. So it tries to
guess by recognizing @samp{cd} commands. If you type @kbd{cd} followed
-by a directory name with a variable reference (@kbd{cd $HOME/bin}) or
+by directory with a variable reference (@kbd{cd $HOME/bin}) or
with a shell metacharacter (@kbd{cd ../lib*}), Emacs will fail to
correctly guess the shell's new current directory. A huge variety of
fixes and enhancements to shell mode for this problem have been written
directory Emacs chooses will most certainly not be what
you want, so let's do it the correct way.
The first thing you've got to do is to
-create a suitable directory (no blanks in directory name
+create a suitable directory (no blanks in names
please), e.g., c:\myhome. Then you must set the environment
variable HOME to this directory. To do this under Windows 9x
or Me include the line
for more information about nntp marks. Note that downgrading isn't
safe in general.
-@item Incompatibility when switching from Emacs 23 to Emacs 22
+@item Incompatibility when switching from Emacs 23 to Emacs 22
In Emacs 23, Gnus uses Emacs's new internal coding system @code{utf-8-emacs}
for saving articles drafts and @file{~/.newsrc.eld}. These files may not
be read correctly in Emacs 22 and below. If you want to use Gnus across
shadows manually or remove them using @code{make
remove-installed-shadows}.
-@item The installation directory name is allowed to have spaces and/or tabs.
+@item The installation directory's name is allowed to have spaces and/or tabs.
@end itemize
@item New packages and libraries within Gnus
@findex gnus-group-make-directory-group
@cindex nndir
Make a directory group (@pxref{Directory Groups}). You will be prompted
-for a directory name (@code{gnus-group-make-directory-group}).
+for the directory's name (@code{gnus-group-make-directory-group}).
@item G h
@kindex G h (Group)
@end lisp
Return everything preceding the last @samp{/} from a relative filename,
-on the assumption that this will produce a relative directory name. Hardly
-bombproof, but good enough in the context in which it is being used.
+on the assumption that this will produce the name of a relative
+directory. Hardly bombproof, but good enough in the context in which
+it is being used.
@item hfy-html-dekludge-buffer
@findex hfy-html-dekludge-buffer
Any environment variables (names of which must have the Unix-style form
@code{$NAME}, e.g., @code{$HOME}, @code{$EMACSDATA}, @code{$EMACS_DIR},
regardless of platform) are evaluated first but each element must
-evaluate to a @emph{single} directory name. Trailing @file{/}s are
+evaluate to a @emph{single} name of a directory. Trailing @file{/}s are
ignored. (Specific directories in @code{woman-path} are also searched.)
On Microsoft platforms I recommend including drive letters explicitly,
Any environment variables (names of which must have the Unix-style form
@code{$NAME}, e.g., @code{$HOME}, @code{$EMACSDATA}, @code{$EMACS_DIR},
regardless of platform) are evaluated first but each element must
-evaluate to a @emph{single} directory name (regexp, see above). For
+evaluate to a @emph{single} name of a directory (regexp, see above). For
example
@lisp