From b0a82a859dde5807c66ed4eee81f8788905ed43e Mon Sep 17 00:00:00 2001 From: Christopher Faylor Date: Sat, 1 Feb 2003 04:48:03 +0000 Subject: * 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. --- winsup/cygwin/termios.cc | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) (limited to 'winsup/cygwin/termios.cc') diff --git a/winsup/cygwin/termios.cc b/winsup/cygwin/termios.cc index 13b5e5251..ac1c89bf0 100644 --- a/winsup/cygwin/termios.cc +++ b/winsup/cygwin/termios.cc @@ -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 ()) -- cgit v1.2.3