Skip to content

Commit a7e1648

Browse files
committed
Adds precheck for console filename to fix Windows 7.
1 parent 6f80562 commit a7e1648

1 file changed

Lines changed: 13 additions & 1 deletion

File tree

‎Modules/_io/winconsoleio.c‎

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,19 @@ char _PyIO_get_console_type(PyObject *path_or_fd) {
8686
return '\0';
8787
}
8888

89+
char m = '\0';
90+
if (!_wcsicmp(decoded_wstr, L"CONIN$")) {
91+
m = 'r';
92+
} else if (!_wcsicmp(decoded_wstr, L"CONOUT$")) {
93+
m = 'w';
94+
} else if (!_wcsicmp(decoded_wstr, L"CON")) {
95+
m = 'x';
96+
}
97+
if (m) {
98+
PyMem_Free(decoded_wstr);
99+
return m;
100+
}
101+
89102
DWORD length;
90103
wchar_t name_buf[MAX_PATH], *pname_buf = name_buf;
91104

@@ -99,7 +112,6 @@ char _PyIO_get_console_type(PyObject *path_or_fd) {
99112
}
100113
PyMem_Free(decoded_wstr);
101114

102-
char m = '\0';
103115
if (length) {
104116
wchar_t *name = pname_buf;
105117
if (length >= 4 && name[3] == L'\\' &&

0 commit comments

Comments
 (0)