This is the mail archive of the
cygwin
mailing list for the Cygwin project.
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