[newlib-cygwin] Cygwin: pty: Lessen the side effect of workaround for rlwarp.
Corinna Vinschen
corinna@sourceware.org
Tue Jan 19 09:57:20 GMT 2021
https://sourceware.org/git/gitweb.cgi?p=newlib-cygwin.git;h=62e739b51bb1cbe644470c40ca414d8a2ea34c18
commit 62e739b51bb1cbe644470c40ca414d8a2ea34c18
Author: Takashi Yano via Cygwin-patches <cygwin-patches@cygwin.com>
Date: Tue Jan 19 18:27:02 2021 +0900
Cygwin: pty: Lessen the side effect of workaround for rlwarp.
- This patch lessens the side effect of the workaround for rlwrap
introduced by commit 4e16b033.
Diff:
---
winsup/cygwin/fhandler_tty.cc | 16 ++++++++++++----
1 file changed, 12 insertions(+), 4 deletions(-)
diff --git a/winsup/cygwin/fhandler_tty.cc b/winsup/cygwin/fhandler_tty.cc
index 473c0c968..c78e996e8 100644
--- a/winsup/cygwin/fhandler_tty.cc
+++ b/winsup/cygwin/fhandler_tty.cc
@@ -1176,11 +1176,19 @@ fhandler_pty_slave::tcgetattr (struct termios *t)
{
reset_switch_to_pcon ();
*t = get_ttyp ()->ti;
+
/* Workaround for rlwrap */
- if (get_ttyp ()->pcon_start)
- t->c_lflag &= ~(ICANON | ECHO);
- if (get_ttyp ()->h_pseudo_console)
- t->c_iflag &= ~ICRNL;
+ cygheap_fdenum cfd (false);
+ while (cfd.next () >= 0)
+ if (cfd->get_major () == DEV_PTYM_MAJOR
+ && cfd->get_minor () == get_minor ())
+ {
+ if (get_ttyp ()->pcon_start)
+ t->c_lflag &= ~(ICANON | ECHO);
+ if (get_ttyp ()->h_pseudo_console)
+ t->c_iflag &= ~ICRNL;
+ break;
+ }
return 0;
}
More information about the Cygwin-cvs
mailing list