diff options
author | Egor Duda <deo@logos-m.ru> | 2001-03-18 18:05:01 +0000 |
---|---|---|
committer | Egor Duda <deo@logos-m.ru> | 2001-03-18 18:05:01 +0000 |
commit | 5e8e21d938b5410b008f20d50d8d0fb9ba6df66b (patch) | |
tree | 5d5ee41620a03a0049e82ceb0877685c09d29da1 /winsup/cygwin/tty.cc | |
parent | ca1cea7ed3a1befe70787e8a7a3bfd81f9cb5899 (diff) | |
download | cygnal-5e8e21d938b5410b008f20d50d8d0fb9ba6df66b.tar.gz cygnal-5e8e21d938b5410b008f20d50d8d0fb9ba6df66b.tar.bz2 cygnal-5e8e21d938b5410b008f20d50d8d0fb9ba6df66b.zip |
* fhandler.h (fhandler_tty_slave): Declare new methods.
* select.cc (fhandler_tty_slave::select_read): New method.
* select.cc (fhandler_tty_slave::ready_for_read): Ditto.
* select.cc (verify_tty_slave): New function.
* fhandler_termios.cc (fhandler_termios::line_edit): Empty input
buffer on signal.
* fhandler_tty.cc (fhandler_tty_slave::read): Check for input data
after reading from pipe. Reset event if input pipe is empty.
* tty.h (class tty): Allow creating events with manual reset.
* tty.cc (tty::get_event): Use manual_reset flag.
* tty.cc (tty::common_init): Create input_available_event with
manual reset.
Diffstat (limited to 'winsup/cygwin/tty.cc')
-rw-r--r-- | winsup/cygwin/tty.cc | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/winsup/cygwin/tty.cc b/winsup/cygwin/tty.cc index 798984418..424cf7112 100644 --- a/winsup/cygwin/tty.cc +++ b/winsup/cygwin/tty.cc @@ -325,13 +325,13 @@ tty::init (void) } HANDLE -tty::get_event (const char *fmt, BOOL inherit) +tty::get_event (const char *fmt, BOOL inherit, BOOL manual_reset) { HANDLE hev; char buf[40]; __small_sprintf (buf, fmt, ntty); - if (!(hev = CreateEvent (inherit ? &sec_all : &sec_all_nih, FALSE, FALSE, buf))) + if (!(hev = CreateEvent (inherit ? &sec_all : &sec_all_nih, manual_reset, FALSE, buf))) { termios_printf ("couldn't create %s", buf); set_errno (ENOENT); /* FIXME this can't be the right errno */ @@ -408,7 +408,7 @@ tty::common_init (fhandler_pty_master *ptym) return FALSE; } - if (!(ptym->input_available_event = get_event (INPUT_AVAILABLE_EVENT, FALSE))) + if (!(ptym->input_available_event = get_event (INPUT_AVAILABLE_EVENT, FALSE, TRUE))) return FALSE; char buf[40]; |