* 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.
This commit is contained in:
Christopher Faylor 2005-12-13 02:02:51 +00:00
parent becfe4e93e
commit d090ee8081
3 changed files with 20 additions and 6 deletions

View File

@ -1,3 +1,16 @@
2005-12-12 Nick Duffek <nick@duffek.com>
* times.cc (systime): Correct precision referenced in comment.
2005-12-12 Christopher Faylor <cgf@timesys.com>
* 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.
2005-12-12 Christopher Faylor <cgf@timesys.com> 2005-12-12 Christopher Faylor <cgf@timesys.com>
* pinfo.cc (winpids::add): Don't copy procinfo when there is no cygwin * pinfo.cc (winpids::add): Don't copy procinfo when there is no cygwin

View File

@ -580,21 +580,22 @@ fhandler_tty_slave::open (int flags, mode_t)
&& wincap.pty_needs_alloc_console ()) && wincap.pty_needs_alloc_console ())
{ {
BOOL b; BOOL b;
HWINSTA horig = GetProcessWindowStation (); HWINSTA h, horig;
h = horig = GetProcessWindowStation ();
if (myself->ctty == -1) 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); termios_printf ("CreateWindowStation %p, %E", h);
if (h) if (h)
{ {
b = SetProcessWindowStation (h); b = SetProcessWindowStation (h);
termios_printf ("SetProcessWindowStation %d, %E", b); termios_printf ("SetProcessWindowStation %d, %E", b);
} }
if (horig)
CloseWindowStation (horig);
} }
b = AllocConsole (); // will cause flashing if workstation b = AllocConsole (); // will cause flashing if workstation
// stuff fails // stuff fails
if (horig && h != horig)
SetProcessWindowStation (horig);
termios_printf ("%d = AllocConsole (), %E", b); termios_printf ("%d = AllocConsole (), %E", b);
if (b) if (b)
init_console_handler (TRUE); init_console_handler (TRUE);

View File

@ -41,7 +41,7 @@ systime ()
x.HighPart = ft.dwHighDateTime; x.HighPart = ft.dwHighDateTime;
x.LowPart = ft.dwLowDateTime; x.LowPart = ft.dwLowDateTime;
x.QuadPart -= FACTOR; /* Add conversion factor for UNIX vs. Windows base time */ x.QuadPart -= FACTOR; /* Add conversion factor for UNIX vs. Windows base time */
x.QuadPart /= 10; /* Convert to milliseconds */ x.QuadPart /= 10; /* Convert to microseconds */
return x.QuadPart; return x.QuadPart;
} }
@ -644,7 +644,7 @@ hires_ms::usecs ()
LONGLONG t = systime (); LONGLONG t = systime ();
LONGLONG res = initime_us + (((LONGLONG) timeGetTime ()) * 1000LL); LONGLONG res = initime_us + (((LONGLONG) timeGetTime ()) * 1000LL);
if (res <= t) if (res < t)
{ {
inited = false; inited = false;
prime (); prime ();