* 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.
This commit is contained in:
@@ -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;
|
||||
|
Reference in New Issue
Block a user