* fhandler.h (fhandler_termios::line_edit): Replace third argument with

passed-in termios struct.
* fhandler_console.cc (fhandler_console::read): Prior to loop, make a copy of
current termios for passing to line_edit prior so that all characters are
processed consistently.
* fhandler_tty.cc (fhandler_pty_master::write): Ditto.
(process_input): Make a copy of curent termios prior to read for use in
subsequent line_edit.
* fhandler_termios.cc (fhandler_termios::line_edit): Replace third parameter
with passed-in termios struct and use it throughout rather than the data from
the current fhandler_termios class.
This commit is contained in:
Christopher Faylor
2002-12-27 03:50:29 +00:00
parent 4a5c645e62
commit 46b73ef192
5 changed files with 53 additions and 35 deletions

View File

@ -198,8 +198,9 @@ process_input (void *)
while (1)
{
size_t nraw = INP_BUFFER_SIZE;
termios ti = tty_master->get_ttyp ()->ti;
tty_master->console->read ((void *) rawbuf, nraw);
(void) tty_master->line_edit (rawbuf, nraw);
(void) tty_master->line_edit (rawbuf, nraw, ti);
}
}
@ -1080,9 +1081,11 @@ fhandler_pty_master::write (const void *ptr, size_t len)
{
int i;
char *p = (char *) ptr;
for (i=0; i < (int) len; i++)
termios ti = tc->ti;
for (i = 0; i < (int) len; i++)
{
line_edit_status status = line_edit (p++, 1);
line_edit_status status = line_edit (p++, 1, ti);
if (status > line_edit_signalled)
{
if (status != line_edit_pipe_full)