diff options
Diffstat (limited to 'lib-src/ntlib.c')
-rw-r--r-- | lib-src/ntlib.c | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/lib-src/ntlib.c b/lib-src/ntlib.c index 2cc791fb56a..feaad1c1bb7 100644 --- a/lib-src/ntlib.c +++ b/lib-src/ntlib.c @@ -29,9 +29,16 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */ #include <sys/stat.h> #include <errno.h> #include <ctype.h> +#include <sys/timeb.h> #include "ntlib.h" +struct timezone +{ + int tz_minuteswest; /* minutes west of Greenwich */ + int tz_dsttime; /* type of dst correction */ +}; + #define MAXPATHLEN _MAX_PATH /* Emulate sleep...we could have done this with a define, but that @@ -202,6 +209,29 @@ getpass (const char * prompt) return NULL; } +/* This is needed because lib/gettime.c calls gettimeofday, which MSVC + doesn't have. Copied from w32.c. */ +void +gettimeofday (struct timeval *tv, struct timezone *tz) +{ + struct _timeb tb; + _ftime (&tb); + + tv->tv_sec = tb.time; + tv->tv_usec = tb.millitm * 1000L; + /* Implementation note: _ftime sometimes doesn't update the dstflag + according to the new timezone when the system timezone is + changed. We could fix that by using GetSystemTime and + GetTimeZoneInformation, but that doesn't seem necessary, since + Emacs always calls gettimeofday with the 2nd argument NULL (see + current_emacs_time). */ + if (tz) + { + tz->tz_minuteswest = tb.timezone; /* minutes west of Greenwich */ + tz->tz_dsttime = tb.dstflag; /* type of dst correction */ + } +} + int fchown (int fd, unsigned uid, unsigned gid) { |