[Python-3000-checkins] r57722 - in python/branches/py3k: Modules/main.c Tools/buildbot/test.bat

martin.v.loewis python-3000-checkins at python.org
Thu Aug 30 16:57:25 CEST 2007


Author: martin.v.loewis
Date: Thu Aug 30 16:57:25 2007
New Revision: 57722

Modified:
   python/branches/py3k/Modules/main.c
   python/branches/py3k/Tools/buildbot/test.bat
Log:
Implement PYTHONNOERRORWINDOW.

Modified: python/branches/py3k/Modules/main.c
==============================================================================
--- python/branches/py3k/Modules/main.c	(original)
+++ python/branches/py3k/Modules/main.c	Thu Aug 30 16:57:25 2007
@@ -9,11 +9,16 @@
 #endif
 
 #if defined(MS_WINDOWS) || defined(__CYGWIN__)
+#include <windows.h>
 #ifdef HAVE_FCNTL_H
 #include <fcntl.h>
 #endif
 #endif
 
+#ifdef _MSC_VER
+#include <crtdbg.h>
+#endif
+
 #if (defined(PYOS_OS2) && !defined(PYCC_GCC)) || defined(MS_WINDOWS)
 #define PYTHONHOMEHELP "<prefix>\\lib"
 #else
@@ -323,6 +328,25 @@
 	    (p = Py_GETENV("PYTHONUNBUFFERED")) && *p != '\0')
 		unbuffered = 1;
 
+#ifdef MS_WINDOWS
+	if ((p = Py_GETENV("PYTHONNOERRORWINDOW")) && *p != '\0') {
+		/* Disable all error windows created by the sytem
+		   or the CRT. */
+#if defined(_DEBUG) && defined(_MSC_VER)
+		int types[] = {_CRT_WARN, _CRT_ERROR, _CRT_ASSERT};
+		int i;
+		for (i = 0; i < sizeof(types)/sizeof(types[0]); i++) {
+		    _CrtSetReportFile(types[i], _CRTDBG_FILE_STDERR);
+		    _CrtSetReportMode(types[i], _CRTDBG_MODE_FILE);
+		}
+		_set_error_mode(_OUT_TO_STDERR);
+#endif
+		SetErrorMode(SEM_FAILCRITICALERRORS | SEM_NOALIGNMENTFAULTEXCEPT |
+			     SEM_NOGPFAULTERRORBOX | SEM_NOOPENFILEERRORBOX);
+	}
+#endif
+
+
 	if (command == NULL && module == NULL && _PyOS_optind < argc &&
 	    strcmp(argv[_PyOS_optind], "-") != 0)
 	{

Modified: python/branches/py3k/Tools/buildbot/test.bat
==============================================================================
--- python/branches/py3k/Tools/buildbot/test.bat	(original)
+++ python/branches/py3k/Tools/buildbot/test.bat	Thu Aug 30 16:57:25 2007
@@ -1,3 +1,4 @@
 @rem Used by the buildbot "test" step.
 cd PCbuild
+set PYTHONNOERRORWINDOW=1
 call rt.bat -d -q -uall -rw


More information about the Python-3000-checkins mailing list