Martin Panter added the comment: +++ b/Lib/test/test_winconsoleio.py +to real people with real keyborads. Should be keyboards There are still assert_() calls in this file (1602_6.patch). Did you miss them?
+++ b/Lib/io.py +from _io import WindowsConsoleIO +__all__.append('WindowsConsoleIO') I think you should either document this class, or remove it from __all__ to clarify it is just an implementation detail. +++ b/Modules/_io/winconsoleio.c +_io_WindowsConsoleIO___init___impl + PyObject *decodedname = Py_None; + Py_INCREF(decodedname); + int d = PyUnicode_FSDecoder(nameobj, (void*)&decodedname); Won’t this leak a reference to Py_None? (Also, I think needless casting like in the last line can mask mistakes that the compiler would otherwise pick up. Imagine if you got the parameters around the wrong way.) +read_console_w(HANDLE handle, DWORD maxlen, DWORD *readlen) { + /* If we didn't read a full buffer that time, don't try + again or we will block a second time. */ I’m not familiar with the Windows APIs involved, but this doesn’t seem robust. What if there were exactly one full buffer waiting, would the next call block without returning anything? ---------- _______________________________________ Python tracker <rep...@bugs.python.org> <http://bugs.python.org/issue1602> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com