IXON and IXOFF belong in _iflag_, not cflag! While I'm here, be more
authorsimon <simon@cda61777-01e9-0310-a592-d414129be87e>
Mon, 2 Oct 2006 20:52:57 +0000 (20:52 +0000)
committersimon <simon@cda61777-01e9-0310-a592-d414129be87e>
Mon, 2 Oct 2006 20:52:57 +0000 (20:52 +0000)
reliable in clearing of RTS/CTS flags.

git-svn-id: svn://svn.tartarus.org/sgt/putty@6864 cda61777-01e9-0310-a592-d414129be87e

unix/uxser.c

index db98dd8..463f4c4 100644 (file)
@@ -162,9 +162,15 @@ static const char *serial_configure(Serial serial, Config *cfg)
     logevent(serial->frontend, msg);
     sfree(msg);
 
-    options.c_cflag &= ~(IXON|IXOFF);
+    options.c_iflag &= ~(IXON|IXOFF);
+#ifdef CRTSCTS
+    options.c_cflag &= ~CRTSCTS;
+#endif
+#ifdef CNEW_RTSCTS
+    options.c_cflag &= ~CNEW_RTSCTS;
+#endif
     if (cfg->serflow == SER_FLOW_XONXOFF) {
-       options.c_cflag |= IXON | IXOFF;
+       options.c_iflag |= IXON | IXOFF;
        str = "XON/XOFF";
     } else if (cfg->serflow == SER_FLOW_RTSCTS) {
 #ifdef CRTSCTS