diff options
author | Roland McGrath <roland@gnu.org> | 2003-09-10 19:16:07 +0000 |
---|---|---|
committer | Roland McGrath <roland@gnu.org> | 2003-09-10 19:16:07 +0000 |
commit | e99e03878b01767e8a7fa191cfdc9a11dfe0feab (patch) | |
tree | b6c39b804b204f22ab10937994fdead3644a8a15 /sysdeps/unix/sysv/linux | |
parent | cd94eda99b573f1a8983e157b955333bfdf4ff20 (diff) | |
download | glibc-e99e03878b01767e8a7fa191cfdc9a11dfe0feab.tar.gz glibc-e99e03878b01767e8a7fa191cfdc9a11dfe0feab.tar.xz glibc-e99e03878b01767e8a7fa191cfdc9a11dfe0feab.zip |
2003-09-10 Roland McGrath <roland@redhat.com>
* sysdeps/unix/sysv/linux/tcgetattr.c (__tcgetattr): Don't use c_ispeed under [! _HAVE_STRUCT_TERMIOS_C_ISPEED]. Don't use c_ospeed under [! _HAVE_STRUCT_TERMIOS_C_OSPEED]. * sysdeps/unix/sysv/linux/tcsetattr.c (tcsetattr): Likewise. Reported by Daniel Jacobowitz <drow@mvista.com>.
Diffstat (limited to 'sysdeps/unix/sysv/linux')
-rw-r--r-- | sysdeps/unix/sysv/linux/tcgetattr.c | 12 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/tcsetattr.c | 4 |
2 files changed, 10 insertions, 6 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) diff --git a/sysdeps/unix/sysv/linux/tcsetattr.c b/sysdeps/unix/sysv/linux/tcsetattr.c index 6005119733..f73ec8883e 100644 --- a/sysdeps/unix/sysv/linux/tcsetattr.c +++ b/sysdeps/unix/sysv/linux/tcsetattr.c @@ -71,10 +71,10 @@ tcsetattr (fd, optional_actions, termios_p) k_termios.c_cflag = termios_p->c_cflag; k_termios.c_lflag = termios_p->c_lflag; k_termios.c_line = termios_p->c_line; -#ifdef _HAVE_C_ISPEED +#if defined _HAVE_C_ISPEED && defined _HAVE_STRUCT_TERMIOS_C_ISPEED k_termios.c_ispeed = termios_p->c_ispeed; #endif -#ifdef _HAVE_C_OSPEED +#if defined _HAVE_C_OSPEED && defined _HAVE_STRUCT_TERMIOS_C_OSPEED k_termios.c_ospeed = termios_p->c_ospeed; #endif memcpy (&k_termios.c_cc[0], &termios_p->c_cc[0], |