diff options
author | Christopher Faylor <me@cgf.cx> | 2003-02-01 04:48:03 +0000 |
---|---|---|
committer | Christopher Faylor <me@cgf.cx> | 2003-02-01 04:48:03 +0000 |
commit | b0a82a859dde5807c66ed4eee81f8788905ed43e (patch) | |
tree | 2d1e6b61e38252d5cbf61f248ec0b99c4341d011 /winsup/cygwin/termios.cc | |
parent | aa0a22481648f6629938ea3dfe412946b5866bad (diff) | |
download | newlib-b0a82a859dde5807c66ed4eee81f8788905ed43e.zip newlib-b0a82a859dde5807c66ed4eee81f8788905ed43e.tar.gz newlib-b0a82a859dde5807c66ed4eee81f8788905ed43e.tar.bz2 |
* 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.
Diffstat (limited to 'winsup/cygwin/termios.cc')
-rw-r--r-- | winsup/cygwin/termios.cc | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/winsup/cygwin/termios.cc b/winsup/cygwin/termios.cc index 13b5e52..ac1c89b 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 ()) |