Welcome to mirror list, hosted at ThFree Co, Russian Federation.

cygwin.com/git/newlib-cygwin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTakashi Yano via Cygwin-patches <cygwin-patches@cygwin.com>2021-01-28 06:26:11 +0300
committerCorinna Vinschen <corinna@vinschen.de>2021-01-28 13:21:12 +0300
commit10d083c745dd89e824adc960d555975afc26b785 (patch)
tree28c338138c0dd5786d1e5693633dcccf6c876ace /winsup/cygwin/tty.h
parent5b941f21b51d511e2dd853db51b521979d00454e (diff)
Cygwin: pty: Inherit typeahead data between two input pipes.
- PTY has a problem that the key input, which is typed during windows native app is running, disappears when it returns to shell. This is beacuse pty has two input pipes, one is for cygwin apps and the other one is for native windows apps. The key input during windows native program is running is sent to the second input pipe while cygwin shell reads input from the first input pipe. This issue had been fixed once by commit 29431fcb, however, the new implementation of pseudo console support by commit bb428520 could not inherit this feature. This patch realize transfering input data between these two pipes bidirectionally by utilizing cygwin-console-helper process. The helper process is launched prior to starting the non-cygwin app, however, exits immediately unlike previous implementation.
Diffstat (limited to 'winsup/cygwin/tty.h')
-rw-r--r--winsup/cygwin/tty.h8
1 files changed, 6 insertions, 2 deletions
diff --git a/winsup/cygwin/tty.h b/winsup/cygwin/tty.h
index a975aba45..eb604588c 100644
--- a/winsup/cygwin/tty.h
+++ b/winsup/cygwin/tty.h
@@ -93,6 +93,8 @@ private:
HANDLE _from_master_cyg;
HANDLE _to_master;
HANDLE _to_master_cyg;
+ HANDLE _to_slave;
+ HANDLE _to_slave_cyg;
HPCON h_pseudo_console;
bool pcon_start;
bool switch_to_pcon_in;
@@ -103,8 +105,6 @@ private:
HANDLE h_pcon_write_pipe;
bool pcon_cap_checked;
bool has_csi6n;
- bool has_set_title;
- bool do_not_resize_pcon;
bool need_invisible_console;
pid_t invisible_console_pid;
@@ -113,10 +113,14 @@ public:
HANDLE from_master_cyg () const { return _from_master_cyg; }
HANDLE to_master () const { return _to_master; }
HANDLE to_master_cyg () const { return _to_master_cyg; }
+ HANDLE to_slave () const { return _to_slave; }
+ HANDLE to_slave_cyg () const { return _to_slave_cyg; }
void set_from_master (HANDLE h) { _from_master = h; }
void set_from_master_cyg (HANDLE h) { _from_master_cyg = h; }
void set_to_master (HANDLE h) { _to_master = h; }
void set_to_master_cyg (HANDLE h) { _to_master_cyg = h; }
+ void set_to_slave (HANDLE h) { _to_slave = h; }
+ void set_to_slave_cyg (HANDLE h) { _to_slave_cyg = h; }
int read_retval;
bool was_opened; /* True if opened at least once. */