On Wed, May 30, 2007 at 12:09:05PM +0200, Hannes Eder wrote:
> Andrew Dunstan schrieb:
> >Hannes Eder wrote:
> >>- open($D, "dir /b $subdirs $spec |") || croak "Could not list
> >>$spec\n";
> >>+ open($D, "cmd /c dir /b $subdirs $spec |") || croak "Could not
> >>list $spec\n";
> >>
> >
> >What the heck are we doing here anyway? We should be doing this a la
> >Perl - calling out to "dir /b" is surely not the best way to do this.
> >If we need to recurse we should use File::Find.
> I think since the code in src/tools/msvc is specific to MSVC and
> therefor, at least currently, specific to Windows. Calling out to "dir
> /b /s" or "cmd /c dir /b /s" works on WinNT and higher. On Win9x/ME
> command.com should be called instead of cmd.exe. In order to be more
> portable maybe we should use the environment variable COMSPEC, which
> should always point to an appropriate command processor.
We only support NT based OSes anyway, so I don't see COMSPEC as being a
problem. The reason it is the way it is is because that part was originally
just a .bat-file and I just copy/pasted the commands...
Are you actually *running* the script from inside cygwin? How else does it
pick up the wrong command processor?
> Is it worth doing this the "Perl-way" and using File::Find? If so, I can
> work an a patch for that.
It's certainly cleaner that way, but I don't find it a major issue. But I'd
rather see that fix than the other one.
//Magnus