diff -Naur libnova-0.15.0.orig/src/julian_day.c libnova-0.15.0/src/julian_day.c --- libnova-0.15.0.orig/src/julian_day.c 2018-05-17 15:44:24.543368100 -0400 +++ libnova-0.15.0/src/julian_day.c 2018-05-17 15:57:24.240688000 -0400 @@ -189,17 +189,30 @@ void ln_get_date_from_sys (struct ln_date * date) { struct tm * gmt; + #ifdef __WIN32__ + struct posix_timeval tv; + struct posix_timezone tz; + #else struct timeval tv; struct timezone tz; + #endif /* get current time with microseconds precission*/ gettimeofday (&tv, &tz); /* convert to UTC time representation */ + #ifdef __WIN32__ + gmt = gmtime(&tv.posix_tv_sec); + #else gmt = gmtime(&tv.tv_sec); + #endif /* fill in date struct */ + #ifdef __WIN32__ + date->seconds = gmt->tm_sec + ((double)tv.posix_tv_usec / 1000000); + #else date->seconds = gmt->tm_sec + ((double)tv.tv_usec / 1000000); + #endif date->minutes = gmt->tm_min; date->hours = gmt->tm_hour; date->days = gmt->tm_mday; diff -Naur libnova-0.15.0.orig/src/libnova/ln_types.h libnova-0.15.0/src/libnova/ln_types.h --- libnova-0.15.0.orig/src/libnova/ln_types.h 2018-05-17 15:44:24.433994300 -0400 +++ libnova-0.15.0/src/libnova/ln_types.h 2018-05-17 15:54:18.810928500 -0400 @@ -341,16 +341,16 @@ #include -struct timeval +struct posix_timeval { - time_t tv_sec; /* count of seconds since Jan. 1, 1970 */ - long tv_usec; /* and microseconds */ + time_t posix_tv_sec; /* count of seconds since Jan. 1, 1970 */ + long posix_tv_usec; /* and microseconds */ }; -struct timezone +struct posix_timezone { - int tz_minuteswest; /* Minutes west of GMT */ - int tz_dsttime; /* DST correction offset */ + int posix_tz_minuteswest; /* Minutes west of GMT */ + int posix_tz_dsttime; /* DST correction offset */ }; #endif /* __WIN32__ */ diff -Naur libnova-0.15.0.orig/src/libnova/utility.h libnova-0.15.0/src/libnova/utility.h --- libnova-0.15.0.orig/src/libnova/utility.h 2018-05-17 15:44:24.465242600 -0400 +++ libnova-0.15.0/src/libnova/utility.h 2018-05-17 16:21:34.418019200 -0400 @@ -21,12 +21,6 @@ #include -#ifdef __WIN32__ -#include -// cbrt replacement -#define cbrt(x) pow (x,1.0/3.0) -#endif - #ifdef __cplusplus extern "C" { #endif @@ -222,7 +216,7 @@ struct tm *gmtime_r (time_t *t, struct tm *gmt); /* Catches calls to the POSIX gettimeofday and converts them to a related WIN32 version. */ -int gettimeofday(struct timeval *tp, struct timezone *tzp); +int gettimeofday(struct posix_timeval *tp, struct posix_timezone *tzp); /* Catches calls to the POSIX strtok_r and converts them to a related WIN32 version. */ char *strtok_r(char *str, const char *sep, char **last); diff -Naur libnova-0.15.0.orig/src/utility.c libnova-0.15.0/src/utility.c --- libnova-0.15.0.orig/src/utility.c 2018-05-17 15:44:24.355870400 -0400 +++ libnova-0.15.0/src/utility.c 2018-05-17 16:04:25.653565300 -0400 @@ -678,17 +678,17 @@ #ifdef __WIN32__ /* Catches calls to the POSIX gettimeofday and converts them to a related WIN32 version. */ -int gettimeofday(struct timeval *tv, struct timezone *tz) +int gettimeofday(struct posix_timeval *tv, struct posix_timezone *tz) { struct _timeb timeptr; _ftime_s (&timeptr); - tv->tv_sec = timeptr.time; - tv->tv_usec = timeptr.millitm * 1000; + tv->posix_tv_sec = timeptr.time; + tv->posix_tv_usec = timeptr.millitm * 1000; - tz->tz_dsttime = timeptr.dstflag; - tz->tz_dsttime = timeptr.timezone; + tz->posix_tz_dsttime = timeptr.dstflag; + tz->posix_tz_dsttime = timeptr.timezone; return 0; }