ant-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From gt bradley <...@linkline.com>
Subject Re: BUG: Exec.java uses NT-specific code, breaks on Win98
Date Sat, 15 Jul 2000 19:16:59 GMT
If you are looking at this code, I'll like to point out another nit.  (or
bug dealing with M$'s  view of the world).

in *nix the cd command changes the current working directory.
In NT (Win9x?) the cd command changes the current working directory for a
drive specified (or the current drive if not specified).

so if I'm at c:\bin and I cd to to \temp,  the current working directory is
\temp (as expected).
however, if I'm at c:\bin and I cd to d:\temp, then the current working
directory is still c:\bin, (and D's working directory is set to d:\temp).

So to change from c:\bin to d:\temp one must either
d:                 [to change to the d: drive]
cd \temp         [or cd d:\temp]

or
pushd d:\temp    [this will "pick-up" the drive change]

pushd will use the drive specifier, (so I use it a lot in my batch(.cmd)
files)

This was causing me grief with one of the earlier releases of Ant,  I hacked
up a work-around for it, so I'm not sure if it is still a problem....

we use several network drives mounted on NT for development, and test/deploy
on Solaris, so I'm now switching our project to Ant for a common
cross-platform build process.

I hope this is helpful
GT




Alex Chaffee wrote:

> We've encountered an Ant bug over in JDOM land.  I'm stumped on how to
> fix it.
>
> Briefly, Exec.java assumes that "windows" means "Windows NT" and
> invokes System.exec with a command line that breaks on Windows 95/98.
>
> ----- Forwarded message from Jason Hunter <jhunter@collab.net> -----
>
> The issue is that the Ant Exec.java task uses the "cmd" syntax as a way
> of handling change of directory duties:
>
>         if (myos.toLowerCase().indexOf("windows") >= 0) {
>             if (!dir.equals(project.resolveFile(".")))
>                 command = "cmd /c cd " + dir + " && " + command;
>
> This codepath has probably never before been exercised on Win98 because
> it seems to occur only when a "cd" is necessary.  The original developer
> probably used NT to test, and I did likewise for the jdom-contrib area.
>
> ------------------------------
>
> At the very least, it should use the %COMSPEC% environment variable to
> identify command.com or cmd.exe as appropriate.  But even that won't
> fix it, since "&&" syntax is not supported in command.com.
>
> Good luck! Please let me know if you make any progress fixing this.
>
>  - Alex
>
> Alex Chaffee                       mailto:alex@jguru.com
> jGuru - Java News and FAQs         http://www.jguru.com/alex/
> Creator of Gamelan                 http://www.gamelan.com/
> Founder of Purple Technology       http://www.purpletech.com/
> Curator of Stinky Art Collective   http://www.stinky.com/


Mime
View raw message