X-Recipient: archive-cygwin AT delorie DOT com X-SWARE-Spam-Status: No, hits=-1.8 required=5.0 tests=AWL,BAYES_00,SPF_PASS X-Spam-Check-By: sourceware.org Message-ID: <497C7785.3000605@dazjorz.com> Date: Sun, 25 Jan 2009 15:30:29 +0100 From: Sjors Gielen User-Agent: Thunderbird 2.0.0.19 (Windows/20081209) MIME-Version: 1.0 To: Eric Blake CC: cygwin AT cygwin DOT com, debian-kcygwin-devel AT lists DOT sourceforge DOT net, Ed Schouten Subject: Re: [bugreport] Two slashes should not indicate remote machine or special directory References: <497C6D52 DOT 5050504 AT dazjorz DOT com> <497C72F8 DOT 8040503 AT byu DOT net> In-Reply-To: <497C72F8.8040503@byu.net> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-IsSubscribed: yes Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com Delivered-To: mailing list cygwin AT cygwin DOT com 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 characters may be > interpreted in an implementation-defined manner, although more than two > leading characters shall be treated as a single 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/