OSDN Git Service

* times.cc (systime): Correct precision referenced in comment.
authorcgf <cgf>
Tue, 13 Dec 2005 02:02:51 +0000 (02:02 +0000)
committercgf <cgf>
Tue, 13 Dec 2005 02:02:51 +0000 (02:02 +0000)
* 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.

winsup/cygwin/ChangeLog
winsup/cygwin/fhandler_tty.cc
winsup/cygwin/times.cc

index a471df0..6111d7f 100644 (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>
 
        * pinfo.cc (winpids::add): Don't copy procinfo when there is no cygwin
index 5b7e69b..5483249 100644 (file)
@@ -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);
index 09343c7..4820454 100644 (file)
@@ -41,7 +41,7 @@ systime ()
   x.HighPart = ft.dwHighDateTime;
   x.LowPart = ft.dwLowDateTime;
   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;
 }
 
@@ -644,7 +644,7 @@ hires_ms::usecs ()
 
   LONGLONG t = systime ();
   LONGLONG res = initime_us + (((LONGLONG) timeGetTime ()) * 1000LL);
-  if (res <= t)
+  if (res < t)
     {
       inited = false;
       prime ();