summaryrefslogtreecommitdiffstats
path: root/winsup/cygwin/fhandler_console.cc
diff options
context:
space:
mode:
authorChristopher Faylor <me@cgf.cx>2000-03-12 06:29:54 +0000
committerChristopher Faylor <me@cgf.cx>2000-03-12 06:29:54 +0000
commit3f0b4935404f01ab19ecab559a3201d4bb1ec5ca (patch)
treecc60ec7a05e57f8a4049bff0959bdd3ae24ae04c /winsup/cygwin/fhandler_console.cc
parent774ea162116fcb08278c5efbe287848f5b5dd431 (diff)
downloadcygnal-3f0b4935404f01ab19ecab559a3201d4bb1ec5ca.tar.gz
cygnal-3f0b4935404f01ab19ecab559a3201d4bb1ec5ca.tar.bz2
cygnal-3f0b4935404f01ab19ecab559a3201d4bb1ec5ca.zip
* fhandler.cc (fhandler_base::get_readahead_into_buffer): New function.
* fhandler.h: Declare new function. Add extra argument to process_slave_output. * fhandler_console.cc (fhandler_console::read): Move read ahead code to new function. * fhandler_tty.cc (fhandler_pty_master::process_slave_output): Move common code here. (fhandler_tty_slave::read): Understand readahead. (fhandler_pty_master::read): Move code to process_slave_output. * select.cc (peek_pipe): Avoid performing certain checks when non-read and on inappropriate fh types.
Diffstat (limited to 'winsup/cygwin/fhandler_console.cc')
-rw-r--r--winsup/cygwin/fhandler_console.cc11
1 files changed, 2 insertions, 9 deletions
diff --git a/winsup/cygwin/fhandler_console.cc b/winsup/cygwin/fhandler_console.cc
index 54d8da618..c7b9a6ec3 100644
--- a/winsup/cygwin/fhandler_console.cc
+++ b/winsup/cygwin/fhandler_console.cc
@@ -115,20 +115,13 @@ fhandler_console::read (void *pv, size_t buflen)
return 0;
HANDLE h = get_io_handle ();
- int copied_chars = 0;
#define buf ((char *) pv)
int ch;
set_input_state ();
- while (buflen)
- if ((ch = get_readahead ()) < 0)
- break;
- else
- {
- buf[copied_chars++] = (unsigned char)(ch & 0xff);
- buflen--;
- }
+
+ int copied_chars = get_readahead_into_buffer (buf, buflen);
if (copied_chars)
return copied_chars;