summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSteve Dower <steve.dower@microsoft.com>2017-02-04 17:36:47 -0800
committerSteve Dower <steve.dower@microsoft.com>2017-02-04 17:36:47 -0800
commit2af0fb8818763f1942666dae0835baeab65340fc (patch)
tree95e52a30c0292f9f92cff33022603c6436bf728f
parent8e98360ead0753f5eafb02a9479bc4425aa1e330 (diff)
downloadcpython-2af0fb8818763f1942666dae0835baeab65340fc.tar.gz
Adds precheck for console filename to fix Windows 7.
-rw-r--r--Modules/_io/winconsoleio.c14
1 files changed, 13 insertions, 1 deletions
diff --git a/Modules/_io/winconsoleio.c b/Modules/_io/winconsoleio.c
index 1ad0bfcdcd..1d169e2764 100644
--- a/Modules/_io/winconsoleio.c
+++ b/Modules/_io/winconsoleio.c
@@ -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'\\' &&