summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ACE/ace/TTY_IO.cpp13
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;