]> granicus.if.org Git - python/commitdiff
Adds precheck for console filename to fix Windows 7.
authorSteve Dower <steve.dower@microsoft.com>
Sun, 5 Feb 2017 01:36:47 +0000 (17:36 -0800)
committerSteve Dower <steve.dower@microsoft.com>
Sun, 5 Feb 2017 01:36:47 +0000 (17:36 -0800)
Modules/_io/winconsoleio.c

index 1ad0bfcdcdf6c131d89857b0da0f6bee025347b6..1d169e2764ed27088f9e187620e065f9a4ae365c 100644 (file)
@@ -86,6 +86,19 @@ char _PyIO_get_console_type(PyObject *path_or_fd) {
         return '\0';
     }
 
+    char m = '\0';
+    if (!_wcsicmp(decoded_wstr, L"CONIN$")) {
+        m = 'r';
+    } else if (!_wcsicmp(decoded_wstr, L"CONOUT$")) {
+        m = 'w';
+    } else if (!_wcsicmp(decoded_wstr, L"CON")) {
+        m = 'x';
+    }
+    if (m) {
+        PyMem_Free(decoded_wstr);
+        return m;
+    }
+
     DWORD length;
     wchar_t name_buf[MAX_PATH], *pname_buf = name_buf;
     
@@ -99,7 +112,6 @@ char _PyIO_get_console_type(PyObject *path_or_fd) {
     }
     PyMem_Free(decoded_wstr);
 
-    char m = '\0';
     if (length) {
         wchar_t *name = pname_buf;
         if (length >= 4 && name[3] == L'\\' &&