diff options
author | Christopher Faylor <me@cgf.cx> | 2005-12-13 02:02:51 +0000 |
---|---|---|
committer | Christopher Faylor <me@cgf.cx> | 2005-12-13 02:02:51 +0000 |
commit | d090ee8081cd382c495d3ffffda6190d4f3aa5bf (patch) | |
tree | 8d0ce5f1449520b7e839f23664fa2277765c1546 /winsup/cygwin/fhandler_tty.cc | |
parent | becfe4e93e81d6fd9811a16aa2490c15511c2947 (diff) | |
download | cygnal-d090ee8081cd382c495d3ffffda6190d4f3aa5bf.tar.gz cygnal-d090ee8081cd382c495d3ffffda6190d4f3aa5bf.tar.bz2 cygnal-d090ee8081cd382c495d3ffffda6190d4f3aa5bf.zip |
* times.cc (systime): Correct precision referenced in comment.
* fhandler_tty.cc (fhandler_tty_slave::open): Don't free original windows
station since that will cause strange problems displaying fonts. Reset windows
station to original station after creating console.
* times.cc (hires_ms::usecs): Only reprime when calculated time is less than
system time.
Diffstat (limited to 'winsup/cygwin/fhandler_tty.cc')
-rw-r--r-- | winsup/cygwin/fhandler_tty.cc | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/winsup/cygwin/fhandler_tty.cc b/winsup/cygwin/fhandler_tty.cc index 5b7e69ba5..5483249c9 100644 --- a/winsup/cygwin/fhandler_tty.cc +++ b/winsup/cygwin/fhandler_tty.cc @@ -580,21 +580,22 @@ fhandler_tty_slave::open (int flags, mode_t) && wincap.pty_needs_alloc_console ()) { BOOL b; - HWINSTA horig = GetProcessWindowStation (); + HWINSTA h, horig; + h = horig = GetProcessWindowStation (); if (myself->ctty == -1) { - HWINSTA h = CreateWindowStation (NULL, 0, GENERIC_READ | GENERIC_WRITE, &sec_none_nih); + h = CreateWindowStation (NULL, 0, WINSTA_ALL_ACCESS, &sec_none_nih); termios_printf ("CreateWindowStation %p, %E", h); if (h) { b = SetProcessWindowStation (h); termios_printf ("SetProcessWindowStation %d, %E", b); } - if (horig) - CloseWindowStation (horig); } b = AllocConsole (); // will cause flashing if workstation // stuff fails + if (horig && h != horig) + SetProcessWindowStation (horig); termios_printf ("%d = AllocConsole (), %E", b); if (b) init_console_handler (TRUE); |