unix/modtermios: tcsetattr: If 0 passed for "when" param, treat as TCSANOW.

As we dn't export constants for TCSANOW, etc., zero makes a good "don't
care" param, and now it will work also under Android Bionic and any other
libc.
This commit is contained in:
Paul Sokolovsky 2015-10-13 00:37:30 +03:00
parent 3c9c3687d6
commit 21f43ba9b0
1 changed files with 8 additions and 0 deletions

View File

@ -71,6 +71,14 @@ STATIC mp_obj_t mod_termios_tcsetattr(mp_obj_t fd_in, mp_obj_t when_in, mp_obj_t
struct termios term;
int fd = mp_obj_get_int(fd_in);
int when = mp_obj_get_int(when_in);
if (when == 0) {
// We don't export TCSANOW and friends to save on code space. Then
// common lazy sense says that passing 0 should be godo enough, and
// it is e.g. for glibc. But for other libc's it's not, so set just
// treat 0 as defauling to TCSANOW.
when = TCSANOW;
}
assert(MP_OBJ_IS_TYPE(attrs_in, &mp_type_list));
mp_obj_list_t *attrs = attrs_in;