http://bugs.winehq.org/show_bug.cgi?id=21338
Summary: cmd needs to set COMSPEC, PATHEXT, and PROMPT environment variables Product: Wine Version: unspecified Platform: x86 OS/Version: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: cmd AssignedTo: wine-bugs@winehq.org ReportedBy: dima@gmail.com
In Windows XP, if I start "cmd /c set" with an empty environment, I always get these variables:
COMSPEC=C:\WINDOWS\system32\cmd.exe PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.JS;.WS PROMPT=$P$G
In Wine, however, cmd prints nothing. (I guess Wine sets those variables only on startup, while Windows sets them in every instance of cmd.)
I tested it by running this Python script:
import subprocess subprocess.Popen(["cmd", "/c", "set"], env={}).communicate()
(It just runs CreateProcess with "\0" as the environment, as far as I understand.)
The problem I'm running into is: I run SCons, which starts a new Python script in a mostly empty environment. The Python script calls os.popen, which relies on COMSPEC to find "cmd.exe", and therefore fails.