diff options
-rw-r--r-- | Modules/termios.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/Modules/termios.c b/Modules/termios.c index 55295a8..d7afeae 100644 --- a/Modules/termios.c +++ b/Modules/termios.c @@ -139,6 +139,9 @@ termios_tcsetattr(self, args) return NULL; } + /* Get the old mode, in case there are any hidden fields... */ + if (tcgetattr(fd, &mode) == -1) + return PyErr_SetFromErrno(TermiosError); mode.c_iflag = (tcflag_t) PyInt_AsLong(PyList_GetItem(term, 0)); mode.c_oflag = (tcflag_t) PyInt_AsLong(PyList_GetItem(term, 1)); mode.c_cflag = (tcflag_t) PyInt_AsLong(PyList_GetItem(term, 2)); |