X-Recipient: archive-cygwin@delorie.com
X-SWARE-Spam-Status: No, hits=-2.5 required=5.0 	tests=AWL,BAYES_00,SPF_PASS
X-Spam-Check-By: sourceware.org
Message-ID: <4B59D9FC.3070307@gmail.com>
Date: Fri, 22 Jan 2010 17:01:48 +0000
From: Dave Korn <dave.korn.cygwin@googlemail.com>
User-Agent: Thunderbird 2.0.0.17 (Windows/20080914)
MIME-Version: 1.0
To: cygwin@cygwin.com
Subject: Re: Design issue with new MS-DOS style path warning?
References: <81D39E818991E549B1F66EB6A7D18422BE8626@AVSMOEXCL02.activision.com> 	 <4B57DF25.4040605@gmail.com> 	 <7f95d3561001220517k4fd93c6btdda02fd06596e97f@mail.gmail.com> 	 <20100122154551.GB4020@ednor.casa.cgf.cx> <7f95d3561001220823md77as48d8128d396c8370@mail.gmail.com>
In-Reply-To: <7f95d3561001220823md77as48d8128d396c8370@mail.gmail.com>
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 7bit
Mailing-List: contact cygwin-help@cygwin.com; run by ezmlm
List-Id: <cygwin.cygwin.com>
List-Subscribe: <mailto:cygwin-subscribe@cygwin.com>
List-Archive: <http://sourceware.org/ml/cygwin/>
List-Post: <mailto:cygwin@cygwin.com>
List-Help: <mailto:cygwin-help@cygwin.com>, <http://sourceware.org/ml/#faqs>
Sender: cygwin-owner@cygwin.com
Mail-Followup-To: cygwin@cygwin.com
Delivered-To: mailing list cygwin@cygwin.com

On 22/01/2010 16:23, Eric Vautier wrote:

> Let me confirm that the script has not changed at all, and used to
> work fine under the previous version. You'll agree that arriving at a
> C:/cygdrive/c/... path is a little odd, regardless of setup. 

  Nope, it's actually entirely sensible!  Because ":" is not a drive-letter
separator in Linux; it's a separator between path-list components, like ";" is
under DOS.

  So if you say "C:\foo\bar" in a path-list context, you are specifying a list
of two paths: "C" and "\foo\bar".  Cygwin (or whatever utility is doing the
work) translates each one separately and then reconcatenates them.  "C" in DOS
is a relative path to any subdirectory called "C" in the current dir; that
stays the same in unix syntax.  "\foo\bar" in DOS is an absolute path relative
to the root of the current drive, which, being your C drive, translates into
/cygdrive/c/foo/bar.  These two are then reconcatenated into a path list
separted by colons.

  The older version was buggy in this regard, it handled dos paths correctly
at the expense of making a mess of colon-separated posix-style path lists
sometimes.  That's why the behaviour has changed, because posix compatibility
wins out over windows compatibility as a design goal of cygwin, and that's why
there's now a warning, to let you know that what you are doing is not going to
work how you want it to.

    cheers,
      DaveK


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

