diff options
author | Christopher Faylor <me@cgf.cx> | 2002-12-28 06:30:47 +0000 |
---|---|---|
committer | Christopher Faylor <me@cgf.cx> | 2002-12-28 06:30:47 +0000 |
commit | caf27c0155d4863b6fa2173b6c8bcc90566d2782 (patch) | |
tree | d338b8ab5ec99a54d3cca3f535ab08601eca5d1f /winsup/cygwin/fhandler_termios.cc | |
parent | 0f109fb869aabcfb831e6f93975f6005757de2dd (diff) | |
download | cygnal-caf27c0155d4863b6fa2173b6c8bcc90566d2782.tar.gz cygnal-caf27c0155d4863b6fa2173b6c8bcc90566d2782.tar.bz2 cygnal-caf27c0155d4863b6fa2173b6c8bcc90566d2782.zip |
* fhandler_termios.cc (fhandler_termios::line_edit): Perform echo before input
is accepted or suffer a "race".
Diffstat (limited to 'winsup/cygwin/fhandler_termios.cc')
-rw-r--r-- | winsup/cygwin/fhandler_termios.cc | 4 |
1 files changed, 2 insertions, 2 deletions
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) |