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