Mercurial > emacs
changeset 96099:eb403674cfbf
(cfsetspeed): New fun extracted from the code.
(cfmakeraw): Move before first use.
author | Stefan Monnier <monnier@iro.umontreal.ca> |
---|---|
date | Fri, 20 Jun 2008 14:59:37 +0000 |
parents | 0d318323f2b7 |
children | 56850301da07 |
files | src/ChangeLog src/sysdep.c |
diffstat | 2 files changed, 28 insertions(+), 21 deletions(-) [+] |
line wrap: on
line diff
--- a/src/ChangeLog Fri Jun 20 14:50:20 2008 +0000 +++ b/src/ChangeLog Fri Jun 20 14:59:37 2008 +0000 @@ -1,3 +1,8 @@ +2008-06-20 Stefan Monnier <monnier@iro.umontreal.ca> + + * sysdep.c (cfsetspeed): New fun extracted from the code. + (cfmakeraw): Move before first use. + 2008-06-20 Angelo Graziosi <angelo.graziosi@alice.it> (tiny change) * sysdep.c (cfmakeraw): Provide fallback implementation.
--- a/src/sysdep.c Fri Jun 20 14:50:20 2008 +0000 +++ b/src/sysdep.c Fri Jun 20 14:59:37 2008 +0000 @@ -244,10 +244,6 @@ SIGMASKTYPE sigprocmask_set; -#if !defined (HAVE_CFMAKERAW) -void cfmakeraw(struct termios *); -#endif /* !defined (HAVE_CFMAKERAW */ - #if !defined (HAVE_GET_CURRENT_DIR_NAME) || defined (BROKEN_GET_CURRENT_DIR_NAME) @@ -5420,6 +5416,29 @@ #endif /* TERMIOS */ #ifdef HAVE_TERMIOS + +#if !defined (HAVE_CFMAKERAW) +/* Workaround for targets which are missing cfmakeraw. */ +/* Pasted from man page. */ +static void cfmakeraw (struct termios *termios_p) +{ + termios_p->c_iflag &= ~(IGNBRK|BRKINT|PARMRK|ISTRIP|INLCR|IGNCR|ICRNL|IXON); + termios_p->c_oflag &= ~OPOST; + termios_p->c_lflag &= ~(ECHO|ECHONL|ICANON|ISIG|IEXTEN); + termios_p->c_cflag &= ~(CSIZE|PARENB); + termios_p->c_cflag |= CS8; +} +#endif /* !defined (HAVE_CFMAKERAW */ + +#if !defined (HAVE_CFSETSPEED) +/* Workaround for targets which are missing cfsetspeed. */ +static int cfsetspeed (struct termios *termios_p, speed_t vitesse) +{ + return (cfsetispeed (termios_p, vitesse) + + cfsetospeed (termios_p, vitesse)); +} +#endif + /* For serial-process-configure */ void serial_configure (struct Lisp_Process *p, @@ -5451,12 +5470,7 @@ else tem = Fplist_get (p->childp, QCspeed); CHECK_NUMBER (tem); -#ifdef HAVE_CFSETSPEED err = cfsetspeed (&attr, XINT (tem)); -#else - err = cfsetispeed(&attr, XINT (tem)); - err = err + cfsetospeed(&attr, XINT (tem)); -#endif if (err != 0) error ("cfsetspeed(%d) failed: %s", XINT (tem), emacs_strerror (errno)); childp2 = Fplist_put (childp2, QCspeed, tem); @@ -5586,18 +5600,6 @@ p->childp = childp2; } -#if !defined (HAVE_CFMAKERAW) -/* Workaround for targets which are missing cfmakeraw */ -/* Pasted from man page; added in serial.c arbitrarily */ -void cfmakeraw(struct termios *termios_p) -{ - termios_p->c_iflag &= ~(IGNBRK|BRKINT|PARMRK|ISTRIP|INLCR|IGNCR|ICRNL|IXON); - termios_p->c_oflag &= ~OPOST; - termios_p->c_lflag &= ~(ECHO|ECHONL|ICANON|ISIG|IEXTEN); - termios_p->c_cflag &= ~(CSIZE|PARENB); - termios_p->c_cflag |= CS8; -} -#endif /* !defined (HAVE_CFMAKERAW */ #endif /* TERMIOS */ /* arch-tag: edb43589-4e09-4544-b325-978b5b121dcf