path conversion regression?

Corinna Vinschen corinna-cygwin@cygwin.com
Fri Jan 9 09:09:00 GMT 2009


On Jan  9 00:43, Christopher Faylor wrote:
> Shouldn't this:
> 
> cygpath -u 'c:\cygwin\bin\cygwin1.dll'
>             ^
> 
> be equivalent to:
> 
> cygpath -u 'C:\cygwin\bin\cygwin1.dll'
>             ^
> 
> ?
> 
> I just checked in a change to cause Cygwin to treat them as equivalent.
> Previously 1.7 exactly matched whatever was in the mount table.  If the
> mount table had a lowercase c:\... it would not match an uppercase C:\...

That shouldn't have happened, unless the path is treated as casesensitive.
With CS, the NT kernel requires the drive letters uppercase, as stored in
the NT namespace.  So far only get_nt_native_path() forced the drive letter
to uppercase.

I thought the code I added lately (*) had taken care of DOS paths so that
they are always treated caseinsensitive so your patch shouldn't have been
necessary.  Looks like that doesn't work as advertised.  I take a look.

Hmm, the mount table entries are another point.  I think what we really
should do is to convert all incoming DOS paths, no matter where they
come from, to an uppercased drive letter.  Later code then doesn't have
to care for the case anymore.


Corinna


(*) http://sources.redhat.com/cgi-bin/cvsweb.cgi/src/winsup/cygwin/path.cc.diff?cvsroot=src&r1=1.532&r2=1.533

-- 
Corinna Vinschen                  Please, send mails regarding Cygwin to
Cygwin Project Co-Leader          cygwin AT cygwin DOT com
Red Hat



More information about the Cygwin-developers mailing list