X-Git-Url: https://code.delx.au/gnu-emacs/blobdiff_plain/a57471f93507c55b55ee9e28c493ba78b46796e3..c49e22560237d246bb2a5351b0c207559929ae52:/lib-src/ntlib.c diff --git a/lib-src/ntlib.c b/lib-src/ntlib.c index 83f653f3ea..f43117457c 100644 --- a/lib-src/ntlib.c +++ b/lib-src/ntlib.c @@ -1,5 +1,9 @@ /* Utility and Unix shadow routines for GNU Emacs support programs on NT. - Copyright (C) 1994, 2001-2011 Free Software Foundation, Inc. + +Copyright (C) 1994, 2001-2013 Free Software Foundation, Inc. + +Author: Geoff Voelker (voelker@cs.washington.edu) +Created: 10-8-94 This file is part of GNU Emacs. @@ -14,11 +18,7 @@ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with GNU Emacs. If not, see . - - - Geoff Voelker (voelker@cs.washington.edu) 10-8-94 -*/ +along with GNU Emacs. If not, see . */ #include #include @@ -29,9 +29,17 @@ along with GNU Emacs. If not, see . #include #include #include +#include +#include #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 +210,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) { @@ -260,6 +291,7 @@ is_exec (const char * name) stricmp (p, ".cmd") == 0)); } +/* FIXME? This is in config.nt now - is this still needed? */ #define IS_DIRECTORY_SEP(x) ((x) == '/' || (x) == '\\') /* We need this because nt/inc/sys/stat.h defines struct stat that is @@ -374,3 +406,9 @@ stat (const char * path, struct stat * buf) return 0; } +int +lstat (const char * path, struct stat * buf) +{ + return stat (path, buf); +} +