(cfsetspeed): New fun extracted from the code.
(cfmakeraw): Move before first use.
This commit is contained in:
parent
25241b4d5a
commit
759d3f3238
2 changed files with 28 additions and 21 deletions
|
@ -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.
|
||||
|
|
44
src/sysdep.c
44
src/sysdep.c
|
@ -244,10 +244,6 @@ void hft_reset P_ ((struct tty_display_info *));
|
|||
|
||||
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 @@ int serial_open (char *port)
|
|||
#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 @@ serial_configure (struct Lisp_Process *p,
|
|||
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 @@ serial_configure (struct Lisp_Process *p,
|
|||
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
|
||||
|
|
Loading…
Add table
Reference in a new issue