Solaris doesn't have cfmakeraw, but it is only a convenience function for
authorSven Panne <sven.panne@aedion.de>
Wed, 13 Jul 2005 11:35:36 +0000 (11:35 +0000)
committerSven Panne <sven.panne@aedion.de>
Wed, 13 Jul 2005 11:35:36 +0000 (11:35 +0000)
some bit-fiddling, anyway.

git-svn-id: svn+ssh://svn.code.sf.net/p/freeglut/code/trunk/freeglut/freeglut@673 7f0cb862-5218-0410-a997-914c9d46530a

ChangeLog
src/freeglut_input_devices.c

index 8b297e7..b31470e 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1118,3 +1118,6 @@ bit on the way.
 
 (290) Made all the "glutJoystickXXX" functions part of the freeglut
 extensions.
+
+(291) Solaris doesn't have cfmakeraw, but it is only a convenience function
+for some bit-fiddling, anyway.
index b5a9144..19dc9c6 100755 (executable)
@@ -271,7 +271,14 @@ static SERIALPORT *serial_open ( const char *device )
     tcgetattr(fd,&port->termio_save);
 
     memset(&termio, 0, sizeof(termio));
-    cfmakeraw(&termio);
+
+    /* Same as "cfmakeraw(&termio)", but Solaris doesn't have this call */
+    termio.c_iflag &= ~( IGNBRK | BRKINT | PARMRK | ISTRIP | INLCR | IGNCR | ICRNL | IXON );
+    termio.c_oflag &= ~OPOST;
+    termio.c_lflag &= ~( ECHO | ECHONL | ICANON | ISIG | IEXTEN );
+    termio.c_cflag &= ~( CSIZE | PARENB );
+    termio.c_cflag |= CS8;
+
     termio.c_cflag = CS8 | CREAD | HUPCL ;
     termio.c_iflag = IGNPAR | IGNBRK ;
     termio.c_cc[VTIME]    = 0;   /* inter-character timer */