Fix bugs:

457466: popenx() argument mangling hangs python
 226766: popen('python -c"...."') tends to hang

Fixes argument quoting in w9xpopen.exe for Windows 9x.  w9xpopen.exe
also never attempts to display a MessageBox when not executed
interactively.

Added test_popen() test.  This test currently just executes
"python -c ..." as a child process, and checks that the expected
arguments were all recieved correctly by the child process.  This
test succeeds for me on Win9x, win2k and Linux, and I hope it does
for other popen supported platforms too :)
This commit is contained in:
Mark Hammond 2002-04-03 01:47:00 +00:00
parent b0aaec5706
commit e7fefbf68d
4 changed files with 98 additions and 5 deletions

View file

@ -3285,9 +3285,15 @@ _PyPopenCreateProcess(char *cmdstring,
s2 = (char *)_alloca(x);
ZeroMemory(s2, x);
/* To maintain correct argument passing semantics,
we pass the command-line as it stands, and allow
quoting to be applied. w9xpopen.exe will then
use its argv vector, and re-quote the necessary
args for the ultimate child process.
*/
PyOS_snprintf(
s2, x,
"%s \"%s%s%s\"",
"\"%s\" %s%s%s",
modulepath,
s1,
s3,