Eli,

> Which calls to CreateProcess that used '*' failed?  You aren't saying
> that the second argument to CreateProcess cannot include unquoted '*'
> characters, are you?

If I recall it correctly, the
  check_one (interpreter, prog, "*");
case failed: Apparently, when you pass a single unquoted '*' argument
to CreateProcess, it can fail with GetLastError() = ERROR_PATH_NOT_FOUND.

> Unfortunately, that's not so.  The version of MSVCRT.DLL that ships
> with Vista and later was updated with the new globbing code.  (Its
> version is also different: 7.0.7600.16385 vs 7.0.2600.5512 on XP.)
> The function in question is __getmainargs; you can verify with
> something like pexports that this function lives inside MSVCRT.DLL.

Oh sh*t, they're doing the globbing in the callee, rather than in the
caller! This is terribly wrong.

> > In any case, can someone please run the testsuite for this module on
> > Windows 7 and report the results?
> >   $ ./gnulib-tool --create-testdir --dir=/tmp/testdir \
> >                   --with-tests --single-configure system-quote
> > then copy the directory to a Windows machine and configure it for mingw
> > or MSVC use.
> 
> What is the command to run the test suite for the new module?  Is it
> 
>   $ cd gltests && make check-TESTS TESTS=test-system-quote.sh

It is
  $ ./configure (with the appropriate options for mingw, depending on your
                 environment)
  $ make
  $ make check
  or (for just the single test)
  $ cd gltests
  $ make check TESTS=test-system-quote.sh

If you get a failure, it's useful to comment out some of the lines
  check_all (SCI_SYSTEM, true, prog); /* equivalent to SCI_WINDOWS_CMD */
  check_all (SCI_WINDOWS_CREATEPROCESS, false, prog);
  check_all (SCI_WINDOWS_CMD, true, prog);
in gltests/test-system-quote-main.c.

> ?  Also, is it sufficient to run the test program from the MSYS shell,
> or should it also be run from cmd.exe?

The test-system-quote.sh script should be run through bash. It doesn't
matter how this bash is invoked.

Bruno


Reply via email to