X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fruntime%2Fwrap.c;h=3f174f368cb554abb26fdb09beac651ef21d6593;hb=c8617f57d0413beb2890e94dabe227cef9c5ddad;hp=c17b0f13796fb709726bd1bd727c2360f5ecf947;hpb=9df2abae0a60d757448f06f0cc90213ec9fa775b;p=sbcl.git diff --git a/src/runtime/wrap.c b/src/runtime/wrap.c index c17b0f1..3f174f3 100644 --- a/src/runtime/wrap.c +++ b/src/runtime/wrap.c @@ -118,7 +118,7 @@ char * sb_realpath (char *path) if ((ret = calloc(MAX_PATH, sizeof(char))) == NULL) return NULL; - if (GetFullPathName(path, MAX_PATH, ret, cp) == 0) { + if (GetFullPathName(path, MAX_PATH, ret, &cp) == 0) { errnum = errno; free(ret); errno = errnum; @@ -423,10 +423,18 @@ int select(int top_fd, DWORD *read_set, DWORD *write_set, DWORD *except_set, tim * yet, however, and the closest we can easily get to a timeval is the * seconds part. So that's what we do. */ +#define UNIX_EPOCH_FILETIME 116444736000000000ULL + int gettimeofday(long *timeval, long *timezone) { - timeval[0] = time(NULL); - timeval[1] = 0; + FILETIME ft; + ULARGE_INTEGER uft; + GetSystemTimeAsFileTime(&ft); + uft.LowPart = ft.dwLowDateTime; + uft.HighPart = ft.dwHighDateTime; + uft.QuadPart -= UNIX_EPOCH_FILETIME; + timeval[0] = uft.QuadPart / 10000000; + timeval[1] = (uft.QuadPart % 10000000)/10; return 0; }