Welcome to mirror list, hosted at ThFree Co, Russian Federation.

cygwin.com/git/newlib-cygwin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristopher Faylor <me@cgf.cx>2002-12-27 06:50:29 +0300
committerChristopher Faylor <me@cgf.cx>2002-12-27 06:50:29 +0300
commit46b73ef192bc8e1ef3db88d1da99dfbe28bb371b (patch)
tree0df82ef446efc511b01e4cae86426ef1050f7115 /winsup/cygwin/fhandler_tty.cc
parent4a5c645e6280415fc3fab8d0ae8d1b2da129ee6c (diff)
* 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.
Diffstat (limited to 'winsup/cygwin/fhandler_tty.cc')
-rw-r--r--winsup/cygwin/fhandler_tty.cc9
1 files changed, 6 insertions, 3 deletions
diff --git a/winsup/cygwin/fhandler_tty.cc b/winsup/cygwin/fhandler_tty.cc
index ef15f9f40..45afbcab1 100644
--- a/winsup/cygwin/fhandler_tty.cc
+++ b/winsup/cygwin/fhandler_tty.cc
@@ -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)