bug-gnulib
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: new module 'system-quote'


From: Bruno Haible
Subject: Re: new module 'system-quote'
Date: Thu, 10 May 2012 00:35:08 +0200
User-agent: KMail/4.7.4 (Linux/3.1.10-1.9-desktop; KDE/4.7.4; x86_64; ; )

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

[Prev in Thread] Current Thread [Next in Thread]