From 2bfdcd8a5f94fd126997796f61b56a09a96820e6 Mon Sep 17 00:00:00 2001 From: Christopher Faylor Date: Wed, 20 Dec 2000 05:57:59 +0000 Subject: * fhandler_serial.cc (fhandler_serial::raw_read): Always find number of bytes ready to be read whether overlapped_armed or not. --- winsup/cygwin/fhandler_serial.cc | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) (limited to 'winsup/cygwin/fhandler_serial.cc') diff --git a/winsup/cygwin/fhandler_serial.cc b/winsup/cygwin/fhandler_serial.cc index c1e472bdf..838da6b9d 100644 --- a/winsup/cygwin/fhandler_serial.cc +++ b/winsup/cygwin/fhandler_serial.cc @@ -79,15 +79,16 @@ fhandler_serial::raw_read (void *ptr, size_t ulen) // if vmin > ulen then things won't work right. overlapped_armed = -1; } - if (!overlapped_armed) + + if (!ClearCommError (get_handle (), &ev, &st)) + goto err; + else if (ev) + termios_printf ("error detected %x", ev); + else if (st.cbInQue) + inq = st.cbInQue; + else if (!overlapped_armed) { - if (!ClearCommError (get_handle (), &ev, &st)) - goto err; - else if (ev) - termios_printf ("error detected %x", ev); - else if (st.cbInQue) - inq = st.cbInQue; - else if ((size_t)tot >= minchars) + if ((size_t)tot >= minchars) break; else if (WaitCommEvent (get_handle (), &ev, &io_status)) { -- cgit v1.2.3