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: Design issue with new MS-DOS style path warning?


On Fri, Jan 22, 2010 at 6:01 PM, Dave Korn
<dave.korn.cygwin@googlemail.com> wrote:
> 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.

Right :)

So essentially, I have a broken script now, that used to work fine.
Remains the challenge: how to fix it for non-buggy 1.7.


FYI, the "faulty but perfectly logical" path in one of the two
failures (I'll try to trace the other one as well) was arrived at
from:


0. Invocation from sh build.sh (mid-script):

	ant clean get-common debug

1. Output of build script:

	AndroidApp
	BUILD FAILED
	C:\dev\prj\app4\AndroidApp\build.xml:343: Warning: Could not find file
	 C:\cygdrive\c\dev\prj\app4\Common\target\Common.jar to copy.

2. Build target (lines 342-344):

	<target name="get-common">
		<copy file="${common-jar}" todir="libs" />
	</target>

3. Properties:

	<property name="common" location="${env.APP4_COMMON_ROOT}" />
	<property name="common-jar" value="${common}/target/Common.jar" />

4. Environment variable:

APP4_COMMON_ROOT = C:\dev\prj\app4\Common


Typing "ant clean get-common debug" works fine from the command line.
-e

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


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