From 017a03afc92ba084898fc897c7e3dbf90197e0b6 Mon Sep 17 00:00:00 2001 From: Eli Zaretskii Date: Sat, 31 Jan 2015 18:32:11 +0200 Subject: [PATCH] Document MS-Windows file-name idiosyncrasies (Bug#19463) doc/emacs/msdog.texi (Windows Files): Document characters invalid in Windows file names. --- doc/emacs/ChangeLog | 3 +++ doc/emacs/msdog.texi | 37 ++++++++++++++++++++++++++++++++++++- 2 files changed, 39 insertions(+), 1 deletion(-) diff --git a/doc/emacs/ChangeLog b/doc/emacs/ChangeLog index 4e3c60efa03..7d8fcf4cb6d 100644 --- a/doc/emacs/ChangeLog +++ b/doc/emacs/ChangeLog @@ -1,5 +1,8 @@ 2015-01-31 Eli Zaretskii + * 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. diff --git a/doc/emacs/msdog.texi b/doc/emacs/msdog.texi index bf130eba7c2..0245fed208c 100644 --- a/doc/emacs/msdog.texi +++ b/doc/emacs/msdog.texi @@ -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 -- 2.39.2