[bugreport] Two slashes should not indicate remote machine or special directory

Sjors Gielen mailinglist@dazjorz.com
Mon Jan 26 01:13:00 GMT 2009


Eric Blake schreef:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
> 
> According to Sjors Gielen on 1/25/2009 6:46 AM:
>> Hey all,
>>
>> In Cygwin (the CVS version), it seems paths starting with two slashes
>> are "special paths" for accessing remote machines or bypassing the mount
>> table.
>>
>> This however is incompatible with Linux, where i.e. //etc is a valid
>> path. See, for example: (`ls` indicators removed for readability)
> 
> Not only is it perfectly compatible with Linux, but it is allowed by
> POSIX.  This is a design decision that all portable programs must be aware
> of - you cannot blindly use '//' to mean '/', and not just because of cygwin.
> 
> http://www.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap03.html#tag_03_266
> http://www.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap04.html#tag_04_12
> "A pathname that begins with two successive <slash> characters may be
> interpreted in an implementation-defined manner, although more than two
> leading <slash> characters shall be treated as a single <slash> character."
> 
>> Therefore, I'm suggesting to remove "//" as a
>> special path from conv_to_win32_path.
> 
> Won't happen.  We've intentionally defined it as a synonym for Windows
> \\server\share notation.

I figured this was by design, but I didn't know there was an explicit 
exception in POSIX for this.
However, as I'm sure you're aware, there are a lot of Linux applications 
which depend on, for example, //etc being the same as /etc. These all 
have to be patched to use ///etc or /etc.

How much of Cygwin will be broken if we remove //remoteserver as an 
equivalent to Windows \\remoteserver? Wouldn't it be a better solution 
to provide an alternative for //remoteserver, i.e. 
/cygdrive/net/remoteserver or maybe even net://remoteserver or 
smb://remoteserver? This would fix both the problem with Linux 
compatibility, and still leave this feature in Cygwin.

- Sjors

--
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/



More information about the Cygwin mailing list