From e7c4193755843e308df180f3014cea214fbf6dc5 Mon Sep 17 00:00:00 2001 From: Guido van Rossum Date: Fri, 12 Jun 1998 14:26:18 +0000 Subject: In tcsetattr(), first initialize the mode structure by calling tcgetattr(). This seems to be the only correct way to cope with platform-specific structure members... --- Modules/termios.c | 3 +++ 1 file changed, 3 insertions(+) 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)); -- cgit v0.12