diff options
Diffstat (limited to 'winsup/cygwin/fhandler_tty.cc')
-rw-r--r-- | winsup/cygwin/fhandler_tty.cc | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/winsup/cygwin/fhandler_tty.cc b/winsup/cygwin/fhandler_tty.cc index dc0f0fceb..3b47f567a 100644 --- a/winsup/cygwin/fhandler_tty.cc +++ b/winsup/cygwin/fhandler_tty.cc @@ -167,7 +167,7 @@ fhandler_pty_master::accept_input () get_ttyp ()->read_retval = -1; break; } - else + else get_ttyp ()->read_retval = 1; p += written; @@ -1077,8 +1077,12 @@ fhandler_pty_master::close () int fhandler_pty_master::write (const void *ptr, size_t len) { - (void) line_edit ((char *) ptr, len); - return len; + size_t i; + char *p = (char *) ptr; + for (i=0; i<len; i++) + if (line_edit (p++, 1) == line_edit_error) + break; + return i; } int __stdcall |