]> code.delx.au - gnu-emacs/commitdiff
Document MS-Windows file-name idiosyncrasies (Bug#19463)
authorEli Zaretskii <eliz@gnu.org>
Sat, 31 Jan 2015 16:32:11 +0000 (18:32 +0200)
committerEli Zaretskii <eliz@gnu.org>
Sat, 31 Jan 2015 16:32:11 +0000 (18:32 +0200)
 doc/emacs/msdog.texi (Windows Files): Document characters invalid in
 Windows file names.

doc/emacs/ChangeLog
doc/emacs/msdog.texi

index 4e3c60efa0397d4ff8f0c9ec46e3db6df9a71125..7d8fcf4cb6d9ad4b23b13e01ddc5b3d961134558 100644 (file)
@@ -1,5 +1,8 @@
 2015-01-31  Eli Zaretskii  <eliz@gnu.org>
 
+       * msdog.texi (Windows Files): Document characters invalid in
+       Windows file names.  (Bug#19463)
+
        * custom.texi (Customization Groups): Update the looks of the
        Customize Group buffer.
 
index bf130eba7c22586dbb57f0745b97dff7b79911d0..0245fed208c7212a3bf998fca197eb3f6d2104ec 100644 (file)
@@ -249,7 +249,42 @@ removable and remote volumes, where this could potentially slow down
 Dired and other related features.  The value of @code{nil} means never
 issue those system calls.  Non-@code{nil} values are more useful on
 NTFS volumes, which support hard links and file security, than on FAT,
-FAT32, and XFAT volumes.
+FAT32, and exFAT volumes.
+
+@cindex file names, invalid characters on MS-Windows
+  Unlike Unix, MS-Windows file systems restrict the set of characters
+that can be used in a file name.  The following characters are not
+allowed:
+
+@itemize @bullet
+@item
+Shell redirection symbols @samp{<}, @samp{>}, and @samp{|}.
+
+@item
+Colon @samp{:} (except after the drive letter).
+
+@item
+Forward slash @samp{/} and backslash @samp{\} (except as directory
+separators).
+
+@item
+Wildcard characters @samp{*} and @samp{?}.
+
+@item
+Control characters whose codepoints are 1 through 31 decimal.  In
+particular, newlines in file names are not allowed.
+
+@item
+The null character, whose codepoint is zero (this limitation exists on
+Unix filesystems as well).
+@end itemize
+
+@noindent
+In addition, referencing any file whose name matches a DOS character
+device, such as @file{NUL} or @file{LPT1} or @file{PRN} or @file{CON},
+with or without any file-name extension, will always resolve to those
+character devices, in any directory.  Therefore, only use such file
+names when you want to use the corresponding character device.
 
 @node ls in Lisp
 @section Emulation of @code{ls} on MS-Windows