* fhandler_serial.cc (fhandler_serial::open): Avoid extraneous setting of res.

* termios.cc (tcsetattr): Correctly record errno after tcsetattr call.
* fhandler_serial.cc (fhandler_serial::tcsetattr): Add error-checking so that
if any Win32 SetComm*() calls fail, errno gets set to EINVAL and tcsetattr()
returns -1.  Catch invalid bitrates, mostly.  If baud rate setting is B0, just
drop DTR and leave Win32 DCB bitrate as-is since 0 is not a valid Win32
setting.
(fhandler_serial::tcgetattr): If DTR is low, populate the bitrate as B0,
otherwise get it from the DCB.
This commit is contained in:
Christopher Faylor
2003-02-01 04:48:03 +00:00
parent aa0a224816
commit b0a82a859d
3 changed files with 187 additions and 161 deletions

View File

@@ -144,8 +144,7 @@ tcsetattr (int fd, int a, const struct termios *t)
case bg_ok:
if (cfd.isopen ())
res = cfd->tcsetattr (a, t);
else
e = get_errno ();
e = get_errno ();
break;
case bg_signalled:
if (thisframe.call_signal_handler ())