diff options
Diffstat (limited to 'sysdeps/unix/sysv/linux/tcgetattr.c')
-rw-r--r-- | sysdeps/unix/sysv/linux/tcgetattr.c | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/sysdeps/unix/sysv/linux/tcgetattr.c b/sysdeps/unix/sysv/linux/tcgetattr.c index 25b5b51fbb..63453ca031 100644 --- a/sysdeps/unix/sysv/linux/tcgetattr.c +++ b/sysdeps/unix/sysv/linux/tcgetattr.c @@ -45,15 +45,19 @@ __tcgetattr (fd, termios_p) termios_p->c_cflag = k_termios.c_cflag; termios_p->c_lflag = k_termios.c_lflag; termios_p->c_line = k_termios.c_line; -#ifdef _HAVE_C_ISPEED +#ifdef _HAVE_STRUCT_TERMIOS_C_ISPEED +# ifdef _HAVE_C_ISPEED termios_p->c_ispeed = k_termios.c_ispeed; -#else +# else termios_p->c_ispeed = k_termios.c_cflag & (CBAUD | CBAUDEX); +# endif #endif -#ifdef _HAVE_C_OSPEED +#ifdef _HAVE_STRUCT_TERMIOS_C_OSPEED +# ifdef _HAVE_C_OSPEED termios_p->c_ospeed = k_termios.c_ospeed; -#else +# else termios_p->c_ospeed = k_termios.c_cflag & (CBAUD | CBAUDEX); +# endif #endif if (sizeof (cc_t) == 1 || _POSIX_VDISABLE == 0 || (unsigned char) _POSIX_VDISABLE == (unsigned char) -1) |