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:
authorChristopher Faylor <me@cgf.cx>2005-12-13 08:43:30 +0300
committerChristopher Faylor <me@cgf.cx>2005-12-13 08:43:30 +0300
commit82f423291b05df1f2553a87b22b5160e46b46356 (patch)
tree14b78ad0527b57500e4905d09dfece58d69ec3fa /winsup/cygwin/fhandler_tty.cc
parent3220aed3544bcb6134c223998d38484a4510ef99 (diff)
* fhandler_tty.cc (fhandler_tty::open): Add a comment.
Diffstat (limited to 'winsup/cygwin/fhandler_tty.cc')
-rw-r--r--winsup/cygwin/fhandler_tty.cc11
1 files changed, 11 insertions, 0 deletions
diff --git a/winsup/cygwin/fhandler_tty.cc b/winsup/cygwin/fhandler_tty.cc
index 5483249c9..47ba20720 100644
--- a/winsup/cygwin/fhandler_tty.cc
+++ b/winsup/cygwin/fhandler_tty.cc
@@ -581,6 +581,17 @@ fhandler_tty_slave::open (int flags, mode_t)
{
BOOL b;
HWINSTA h, horig;
+ /* The intent here is to allocate an "invisible" console if we have no
+ controlling tty or to reuse the existing console if we already have
+ a tty. So, first get the old windows station. If there is no controlling
+ terminal, create a new windows station and then set it as the current
+ windows station. The subsequent AllocConsole will then be allocated
+ invisibly. But, after doing that we have to restore any existing windows
+ station or, strangely, characters will not be displayed in any windows
+ drawn on the current screen. We only do this if we have changed to
+ a new windows station and if we had an existing windows station previously.
+
+ Phew. */
h = horig = GetProcessWindowStation ();
if (myself->ctty == -1)
{