aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorStefan Monnier2008-06-20 14:59:37 +0000
committerStefan Monnier2008-06-20 14:59:37 +0000
commit759d3f3238fea6fd8635d9a7f9463007cf9509e3 (patch)
tree9f9879bea0e8131ad7179748b0e30bb948fb35c8 /src
parent25241b4d5a359f3b25e672b9a19b15968cacc107 (diff)
downloademacs-759d3f3238fea6fd8635d9a7f9463007cf9509e3.tar.gz
emacs-759d3f3238fea6fd8635d9a7f9463007cf9509e3.zip
(cfsetspeed): New fun extracted from the code.
(cfmakeraw): Move before first use.
Diffstat (limited to 'src')
-rw-r--r--src/ChangeLog5
-rw-r--r--src/sysdep.c44
2 files changed, 28 insertions, 21 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index 8acc50cccb0..2133a063cef 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,8 @@
12008-06-20 Stefan Monnier <monnier@iro.umontreal.ca>
2
3 * sysdep.c (cfsetspeed): New fun extracted from the code.
4 (cfmakeraw): Move before first use.
5
12008-06-20 Angelo Graziosi <angelo.graziosi@alice.it> (tiny change) 62008-06-20 Angelo Graziosi <angelo.graziosi@alice.it> (tiny change)
2 7
3 * sysdep.c (cfmakeraw): Provide fallback implementation. 8 * sysdep.c (cfmakeraw): Provide fallback implementation.
diff --git a/src/sysdep.c b/src/sysdep.c
index 38e4e0e95f7..bac8a638182 100644
--- a/src/sysdep.c
+++ b/src/sysdep.c
@@ -244,10 +244,6 @@ void hft_reset P_ ((struct tty_display_info *));
244 244
245SIGMASKTYPE sigprocmask_set; 245SIGMASKTYPE sigprocmask_set;
246 246
247#if !defined (HAVE_CFMAKERAW)
248void cfmakeraw(struct termios *);
249#endif /* !defined (HAVE_CFMAKERAW */
250
251 247
252#if !defined (HAVE_GET_CURRENT_DIR_NAME) || defined (BROKEN_GET_CURRENT_DIR_NAME) 248#if !defined (HAVE_GET_CURRENT_DIR_NAME) || defined (BROKEN_GET_CURRENT_DIR_NAME)
253 249
@@ -5420,6 +5416,29 @@ int serial_open (char *port)
5420#endif /* TERMIOS */ 5416#endif /* TERMIOS */
5421 5417
5422#ifdef HAVE_TERMIOS 5418#ifdef HAVE_TERMIOS
5419
5420#if !defined (HAVE_CFMAKERAW)
5421/* Workaround for targets which are missing cfmakeraw. */
5422/* Pasted from man page. */
5423static void cfmakeraw (struct termios *termios_p)
5424{
5425 termios_p->c_iflag &= ~(IGNBRK|BRKINT|PARMRK|ISTRIP|INLCR|IGNCR|ICRNL|IXON);
5426 termios_p->c_oflag &= ~OPOST;
5427 termios_p->c_lflag &= ~(ECHO|ECHONL|ICANON|ISIG|IEXTEN);
5428 termios_p->c_cflag &= ~(CSIZE|PARENB);
5429 termios_p->c_cflag |= CS8;
5430}
5431#endif /* !defined (HAVE_CFMAKERAW */
5432
5433#if !defined (HAVE_CFSETSPEED)
5434/* Workaround for targets which are missing cfsetspeed. */
5435static int cfsetspeed (struct termios *termios_p, speed_t vitesse)
5436{
5437 return (cfsetispeed (termios_p, vitesse)
5438 + cfsetospeed (termios_p, vitesse));
5439}
5440#endif
5441
5423/* For serial-process-configure */ 5442/* For serial-process-configure */
5424void 5443void
5425serial_configure (struct Lisp_Process *p, 5444serial_configure (struct Lisp_Process *p,
@@ -5451,12 +5470,7 @@ serial_configure (struct Lisp_Process *p,
5451 else 5470 else
5452 tem = Fplist_get (p->childp, QCspeed); 5471 tem = Fplist_get (p->childp, QCspeed);
5453 CHECK_NUMBER (tem); 5472 CHECK_NUMBER (tem);
5454#ifdef HAVE_CFSETSPEED
5455 err = cfsetspeed (&attr, XINT (tem)); 5473 err = cfsetspeed (&attr, XINT (tem));
5456#else
5457 err = cfsetispeed(&attr, XINT (tem));
5458 err = err + cfsetospeed(&attr, XINT (tem));
5459#endif
5460 if (err != 0) 5474 if (err != 0)
5461 error ("cfsetspeed(%d) failed: %s", XINT (tem), emacs_strerror (errno)); 5475 error ("cfsetspeed(%d) failed: %s", XINT (tem), emacs_strerror (errno));
5462 childp2 = Fplist_put (childp2, QCspeed, tem); 5476 childp2 = Fplist_put (childp2, QCspeed, tem);
@@ -5586,18 +5600,6 @@ serial_configure (struct Lisp_Process *p,
5586 p->childp = childp2; 5600 p->childp = childp2;
5587 5601
5588} 5602}
5589#if !defined (HAVE_CFMAKERAW)
5590/* Workaround for targets which are missing cfmakeraw */
5591/* Pasted from man page; added in serial.c arbitrarily */
5592void cfmakeraw(struct termios *termios_p)
5593{
5594 termios_p->c_iflag &= ~(IGNBRK|BRKINT|PARMRK|ISTRIP|INLCR|IGNCR|ICRNL|IXON);
5595 termios_p->c_oflag &= ~OPOST;
5596 termios_p->c_lflag &= ~(ECHO|ECHONL|ICANON|ISIG|IEXTEN);
5597 termios_p->c_cflag &= ~(CSIZE|PARENB);
5598 termios_p->c_cflag |= CS8;
5599}
5600#endif /* !defined (HAVE_CFMAKERAW */
5601#endif /* TERMIOS */ 5603#endif /* TERMIOS */
5602 5604
5603/* arch-tag: edb43589-4e09-4544-b325-978b5b121dcf 5605/* arch-tag: edb43589-4e09-4544-b325-978b5b121dcf