* 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:
Christopher Faylor
2000-03-12 06:29:54 +00:00
parent 774ea16211
commit 3f0b493540
7 changed files with 114 additions and 93 deletions

View File

@@ -409,20 +409,24 @@ peek_pipe (select_record *s, int ignra)
if (!s->read_selected && !s->except_selected)
goto out;
if (s->read_selected && fh->bg_check (SIGTTIN) <= 0)
if (s->read_selected)
{
gotone = s->read_ready = 1;
goto out;
if (fh->bg_check (SIGTTIN) <= 0)
{
gotone = s->read_ready = 1;
goto out;
}
if (!ignra && fh->get_device () != FH_PTYM && fh->get_device () != FH_TTYM &&
fh->get_readahead_valid ())
{
select_printf ("readahead");
gotone = s->read_ready = 1;
goto out;
}
}
if (!ignra && fh->get_readahead_valid ())
{
select_printf ("readahead");
gotone = s->read_ready = 1;
goto out;
}
else if (!PeekNamedPipe (h, NULL, 0, NULL, (DWORD *) &n, NULL))
if (!PeekNamedPipe (h, NULL, 0, NULL, (DWORD *) &n, NULL))
{
select_printf ("%s, PeekNamedPipe failed, %E", fh->get_name ());
n = -1;