diff options
author | Sebastian Wiedenroth <wiedi@frubar.net> | 2014-02-10 03:02:43 +0100 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2014-02-11 12:06:52 +0100 |
commit | 6ce439a6393cd857f3eb9ffeba0ad6594cf4ae63 (patch) | |
tree | 07ebd8c52f28ec28ae7dc0d26d7a8f5001f8c2b0 | |
parent | 96ea4b2629939b5ff357402245ac2e220979ee51 (diff) | |
download | qtserialport-6ce439a6393cd857f3eb9ffeba0ad6594cf4ae63.tar.gz |
Don't use cfmakeraw on SunOS
The cfmakeraw() function is an extension to POSIX and thus not fully
portable. It doesn't exist on Solaris and Illumos.
Source: http://www.perkin.org.uk/posts/solaris-portability-cfmakeraw.html
Change-Id: Icf514fe32c01e85baff2a0d49321e45a320703b7
Reviewed-by: Laszlo Papp <lpapp@kde.org>
-rw-r--r-- | src/serialport/qserialport_unix.cpp | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/src/serialport/qserialport_unix.cpp b/src/serialport/qserialport_unix.cpp index a904c06..844ba13 100644 --- a/src/serialport/qserialport_unix.cpp +++ b/src/serialport/qserialport_unix.cpp @@ -237,7 +237,15 @@ bool QSerialPortPrivate::open(QIODevice::OpenMode mode) } currentTermios = restoredTermios; +#ifdef Q_OS_SOLARIS + currentTermios.c_iflag &= ~(IMAXBEL|IGNBRK|BRKINT|PARMRK|ISTRIP|INLCR|IGNCR|ICRNL|IXON); + currentTermios.c_oflag &= ~OPOST; + currentTermios.c_lflag &= ~(ECHO|ECHONL|ICANON|ISIG|IEXTEN); + currentTermios.c_cflag &= ~(CSIZE|PARENB); + currentTermios.c_cflag |= CS8; +#else ::cfmakeraw(¤tTermios); +#endif currentTermios.c_cflag |= CLOCAL; currentTermios.c_cc[VTIME] = 0; currentTermios.c_cc[VMIN] = 0; |