Subject: Re: Cygwin preserving filenames ending in period
From: Brian Dessent <[email-masked]>
To: [email-masked]
Date: Fri, 25 Feb 2005 09:45:08 -0800

Lloyd Wood wrote:

> I've just discovered that Cygwin does not preserve filenames ending in
> a period, and treats the filenames with and without the period as
> identical. This is contrary to other linux systems.
> 
> http://www.ee.surrey.ac.uk/Personal/L.Wood/software/SaVi/building-1.2/
> 
> describes the problem; a file named 'Makefile_defs.' was created by
> cvs, but eventually got packaged up as 'Makefile_defs' causing build
> errors on platforms other than Cygwin.

Because It's Windows(tm).  If I recall correctly the lowest level NT
APIs can create filenames with trailing dots on NTFS volumes, but none
of the higher level APIs (win32) can deal with a trailing dot.  The
Microsoft platform SDK in the section "Naming a File" in the Storage
reference says:

"Do not end a file or directory name with a trailing space or a period.
Although the underlying file system may support such names, the
operating system does not. "

I think that Cygwin does use the NT level API for several reasons (speed
and capability), but if it were to allow trailing-dotted filenames it
would mean that you could create a file in Cygwin that would be
undeleteable/unaccessable with normal windows tools.  It would also
create a behavior that would only work on NT kernels and NTFS
filesystem, while Cygwin in general has to support 9x, FAT, etc.

You should look into using a managed mount if you absolutely must have
files with names that are incompatible with Windows.

Brian

--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/