[Openmcl-cvs-notifications] r11311 - /trunk/source/lisp-kernel/windows-calls.c

gb at clozure.com gb at clozure.com
Fri Nov 7 20:52:16 EST 2008


Author: gb
Date: Fri Nov  7 20:52:16 2008
New Revision: 11311

Log:
in lisp_open(): always enable FILE_SHARE_READ|FILE_SHARE_WRITE.
lisp_gettimeofday(): coerce from windows time ourselves.
asinh(), asinhf(): don't negate 0.0 result.

Modified:
    trunk/source/lisp-kernel/windows-calls.c

Modified: trunk/source/lisp-kernel/windows-calls.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- trunk/source/lisp-kernel/windows-calls.c (original)
+++ trunk/source/lisp-kernel/windows-calls.c Fri Nov  7 20:52:16 2008
@@ -187,13 +187,7 @@
   DWORD dwFlagsAndAttributes =3D 0;
   SECURITY_ATTRIBUTES sa =3D {sizeof(SECURITY_ATTRIBUTES), NULL, TRUE};
 =

-  if ((flag & S_IREAD) =3D=3D S_IREAD) {
-    dwShareMode =3D FILE_SHARE_READ;
-  } else {
-    if ((flag & S_IWRITE) =3D=3D S_IWRITE) {
-      dwShareMode =3D FILE_SHARE_READ | FILE_SHARE_WRITE;
-    }
-  }
+  dwShareMode =3D FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_SHARE_DELETE;
 =

   if ((flag & _O_WRONLY) =3D=3D _O_WRONLY) {
     dwDesiredAccess |=3D GENERIC_WRITE | FILE_WRITE_DATA |
@@ -206,12 +200,6 @@
       FILE_WRITE_ATTRIBUTES;
   }
     =

-  if ((flag & S_IREAD) =3D=3D S_IREAD) {
-    dwShareMode |=3D FILE_SHARE_READ;
-  }
-  if ((flag & S_IWRITE) =3D=3D S_IWRITE) {
-    dwShareMode |=3D FILE_SHARE_WRITE;
-  }
 =

   if ((flag & (_O_CREAT | _O_EXCL)) =3D=3D (_O_CREAT | _O_EXCL)) {
     dwCreationDistribution |=3D CREATE_NEW;
@@ -572,7 +560,15 @@
 int
 lisp_gettimeofday(struct timeval *tp, void *tzp)
 {
-  return gettimeofday(tp, tzp);
+  __time64_t now;
+
+  gettimeofday(tp,tzp);       /* trust it to get time zone right, at least=
 */
+  GetSystemTimeAsFileTime((FILETIME*)&now);
+  now -=3D UNIX_EPOCH_IN_WINDOWS_EPOCH;
+  now /=3D 10000;
+  tp->tv_sec =3D now/1000LL;
+  tp->tv_usec =3D now%1000LL;
+  return 0;
 }
 =

 #ifdef WIN_64
@@ -646,7 +642,7 @@
 =

   z =3D log1p (z + z * z / (sqrt (z * z + 1.0) + 1.0));
 =

-  return ( x > 0.0 ? z : -z);
+  return ( x >=3D 0.0 ? z : -z);
 }
 =

 float
@@ -671,7 +667,7 @@
 =

   z =3D log1p (z + z * z / (sqrt (z * z + 1.0) + 1.0));
 =

-  return ( x > 0.0 ? z : -z);
+  return ( x >=3D 0.0 ? z : -z);
 }
 =

 double



More information about the Openmcl-cvs-notifications mailing list