From 819dbaebd65f8d38cdb5eaf996b8c046e258ce5f Mon Sep 17 00:00:00 2001 From: Christopher Faylor Date: Thu, 24 Nov 2005 02:34:31 +0000 Subject: * fhandler_tty.cc (fhandler_tty_slave::open): Reset the current windows station whenever ctty == -1 regardles of whetehr there's a windows station already assigned. Close the old windows station in this situation. * pinfo.cc (_pinfo::set_ctty): Reinstate incrementing of console count when recording ctty so that the current tty is always around. --- winsup/cygwin/fhandler_tty.cc | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'winsup/cygwin/fhandler_tty.cc') diff --git a/winsup/cygwin/fhandler_tty.cc b/winsup/cygwin/fhandler_tty.cc index 559819fee..5b7e69ba5 100644 --- a/winsup/cygwin/fhandler_tty.cc +++ b/winsup/cygwin/fhandler_tty.cc @@ -580,7 +580,8 @@ fhandler_tty_slave::open (int flags, mode_t) && wincap.pty_needs_alloc_console ()) { BOOL b; - if (!GetProcessWindowStation ()) + HWINSTA horig = GetProcessWindowStation (); + if (myself->ctty == -1) { HWINSTA h = CreateWindowStation (NULL, 0, GENERIC_READ | GENERIC_WRITE, &sec_none_nih); termios_printf ("CreateWindowStation %p, %E", h); @@ -589,6 +590,8 @@ fhandler_tty_slave::open (int flags, mode_t) b = SetProcessWindowStation (h); termios_printf ("SetProcessWindowStation %d, %E", b); } + if (horig) + CloseWindowStation (horig); } b = AllocConsole (); // will cause flashing if workstation // stuff fails -- cgit v1.2.3