diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog index e012624bf..2cb8e8899 100644 --- a/winsup/cygwin/ChangeLog +++ b/winsup/cygwin/ChangeLog @@ -1,3 +1,8 @@ +2002-12-28 Christopher Faylor + + * fhandler_termios.cc (fhandler_termios::line_edit): Perform echo + before input is accepted or suffer a "race". + 2002-12-27 Christopher Faylor * fhandler.h (fhandler_tty_master::set_winsize): Declare new function. diff --git a/winsup/cygwin/fhandler_termios.cc b/winsup/cygwin/fhandler_termios.cc index 7b922b0f8..b9fd9e709 100644 --- a/winsup/cygwin/fhandler_termios.cc +++ b/winsup/cygwin/fhandler_termios.cc @@ -324,6 +324,8 @@ fhandler_termios::line_edit (const char *rptr, int nread, termios& ti) c = cyg_tolower (c); put_readahead (c); + if (ti.c_lflag & ECHO) + doecho (&c, 1); if (!iscanon || input_done) { int status = accept_input (); @@ -336,8 +338,6 @@ fhandler_termios::line_edit (const char *rptr, int nread, termios& ti) ret = line_edit_input_done; input_done = 0; } - if (ti.c_lflag & ECHO) - doecho (&c, 1); } if (!iscanon && ralen > 0)