This is the mail archive of the cygwin mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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


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/


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]