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...
This commit is contained in:
Guido van Rossum 1998-06-12 14:26:18 +00:00
parent ae9ee7329d
commit e7c4193755
1 changed files with 3 additions and 0 deletions

View File

@ -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));