- removed barry's workaround, to make room for
bill's more complete solution.
This commit is contained in:
parent
89610a4d50
commit
c0348ac670
30
PC/WinMain.c
30
PC/WinMain.c
|
@ -2,8 +2,6 @@
|
|||
|
||||
#define WINDOWS_LEAN_AND_MEAN
|
||||
#include <windows.h>
|
||||
#include <fcntl.h>
|
||||
#include <sys/stat.h>
|
||||
|
||||
#include "Python.h"
|
||||
|
||||
|
@ -16,33 +14,5 @@ int WINAPI WinMain(
|
|||
int nCmdShow /* show state of window */
|
||||
)
|
||||
{
|
||||
int null_file;
|
||||
|
||||
/*
|
||||
* make sure that the C RTL has valid file descriptors for
|
||||
* stdin, stdout, stderr. Use the NUL device if necessary.
|
||||
* This allows popen to work under pythonw.
|
||||
*
|
||||
* When pythonw.exe starts the C RTL function _ioinit is called
|
||||
* first. WinMain is called later hence the need to check for
|
||||
* invalid handles.
|
||||
*
|
||||
* Note: FILE stdin, stdout, stderr do not use the file descriptors
|
||||
* setup here. They are already initialised before WinMain was called.
|
||||
*/
|
||||
|
||||
null_file = open("NUL", _O_RDWR);
|
||||
|
||||
if (_get_osfhandle(0) == -1)
|
||||
dup2(null_file, 0);
|
||||
|
||||
if (_get_osfhandle(1) == -1)
|
||||
dup2(null_file, 1);
|
||||
|
||||
if (_get_osfhandle(2) == -1)
|
||||
dup2(null_file, 2);
|
||||
|
||||
close(null_file);
|
||||
|
||||
return Py_Main(__argc, __argv);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue