diff options
-rw-r--r-- | ACE/ace/TTY_IO.cpp | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/ACE/ace/TTY_IO.cpp b/ACE/ace/TTY_IO.cpp index c9e14e966e2..53c56baddab 100644 --- a/ACE/ace/TTY_IO.cpp +++ b/ACE/ace/TTY_IO.cpp @@ -242,16 +242,24 @@ int ACE_TTY_IO::control (Control_Mode cmd, Serial_Params *arg) const { devpar.c_cflag |= PARENB; devpar.c_cflag |= PARODD; + devpar.c_iflag &= ~IGNPAR; + devpar.c_iflag |= INPCK | PARMRK; } else if (ACE_OS::strcasecmp (arg->paritymode, ACE_TTY_IO_EVEN) == 0) { devpar.c_cflag |= PARENB; devpar.c_cflag &= ~PARODD; + devpar.c_iflag &= ~IGNPAR; + devpar.c_iflag |= INPCK | PARMRK; } else if (ACE_OS::strcasecmp (arg->paritymode, ACE_TTY_IO_NONE) == 0) - devpar.c_cflag &= ~PARENB; + { + devpar.c_cflag &= ~PARENB; + } else - return -1; + { + return -1; + } } else { @@ -291,7 +299,6 @@ int ACE_TTY_IO::control (Control_Mode cmd, Serial_Params *arg) const devpar.c_cflag |= CLOCAL; #endif /* CLOCAL */ - devpar.c_iflag = IGNPAR | INPCK; if (arg->databits < 8) devpar.c_iflag |= ISTRIP; |