diff options
| author | Stefan Monnier | 2008-06-20 14:59:37 +0000 |
|---|---|---|
| committer | Stefan Monnier | 2008-06-20 14:59:37 +0000 |
| commit | 759d3f3238fea6fd8635d9a7f9463007cf9509e3 (patch) | |
| tree | 9f9879bea0e8131ad7179748b0e30bb948fb35c8 /src | |
| parent | 25241b4d5a359f3b25e672b9a19b15968cacc107 (diff) | |
| download | emacs-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/ChangeLog | 5 | ||||
| -rw-r--r-- | src/sysdep.c | 44 |
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 @@ | |||
| 1 | 2008-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 | |||
| 1 | 2008-06-20 Angelo Graziosi <angelo.graziosi@alice.it> (tiny change) | 6 | 2008-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 | ||
| 245 | SIGMASKTYPE sigprocmask_set; | 245 | SIGMASKTYPE sigprocmask_set; |
| 246 | 246 | ||
| 247 | #if !defined (HAVE_CFMAKERAW) | ||
| 248 | void 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. */ | ||
| 5423 | static 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. */ | ||
| 5435 | static 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 */ |
| 5424 | void | 5443 | void |
| 5425 | serial_configure (struct Lisp_Process *p, | 5444 | serial_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 */ | ||
| 5592 | void 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 |