* 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:
@@ -96,6 +96,24 @@ fhandler_base::eat_readahead (int n)
|
||||
return oralen;
|
||||
}
|
||||
|
||||
int
|
||||
fhandler_base::get_readahead_into_buffer (char *buf, size_t buflen)
|
||||
{
|
||||
int ch;
|
||||
int copied_chars = 0;
|
||||
|
||||
while (buflen)
|
||||
if ((ch = get_readahead ()) < 0)
|
||||
break;
|
||||
else
|
||||
{
|
||||
buf[copied_chars++] = (unsigned char)(ch & 0xff);
|
||||
buflen--;
|
||||
}
|
||||
|
||||
return copied_chars;
|
||||
}
|
||||
|
||||
uid_t __stdcall
|
||||
get_file_owner (int use_ntsec, const char *filename)
|
||||
{
|
||||
|
Reference in New Issue
Block a user