Fix for #1415 pythonw.exe fails because std streams a missing
After a long discussion about the problem with Windows GUI apps Guido decided that sys.stdin, stdout and stderr should be None when the C runtime library returns invalid file descriptors for the standard streams.
So far the only known cases are Windows GUI apps and scripts started with pythonw on Windows. The OS restrictions are tight enough to catch the problem on other OSes.
diff --git a/Objects/fileobject.c b/Objects/fileobject.c
index 6d6022e..5d69911 100644
--- a/Objects/fileobject.c
+++ b/Objects/fileobject.c
@@ -363,7 +363,7 @@
{
PyStdPrinter_Object *self;
- if ((fd != fileno(stdout) && fd != fileno(stderr)) || fd < 0) {
+ if (fd != fileno(stdout) && fd != fileno(stderr)) {
/* not enough infrastructure for PyErr_BadInternalCall() */
return NULL;
}