From: Paul Eggert Date: Tue, 2 May 2017 07:40:41 +0000 (-0700) Subject: utimens: port to Emacs + MS-Windows X-Git-Tag: v1.0~6207 X-Git-Url: https://gitweb.git.savannah.gnu.org/gitweb/?a=commitdiff_plain;h=fb26fc4b4ad7db1d12933aefc3d213c6f217092c;p=gnulib.git utimens: port to Emacs + MS-Windows Skip the new MS-Windows-specific code if Emacs. * lib/utimens.c [EMACS_CONFIGUATION]: Avoid new MS-Windows-specific code. (USE_SETFILETIME): New macro. (fdutimens): Use it. --- diff --git a/ChangeLog b/ChangeLog index ad44003ead..8c91b23e9c 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,12 @@ +2017-05-02 Paul Eggert + + utimens: port to Emacs + MS-Windows + Skip the new MS-Windows-specific code if Emacs. + * lib/utimens.c [EMACS_CONFIGUATION]: + Avoid new MS-Windows-specific code. + (USE_SETFILETIME): New macro. + (fdutimens): Use it. + 2017-05-01 Paul Eggert tzset: update doc for TZ problems on MS-Windows diff --git a/lib/utimens.c b/lib/utimens.c index 0b3b8e2f3a..5f3a846ea2 100644 --- a/lib/utimens.c +++ b/lib/utimens.c @@ -35,7 +35,13 @@ #include "stat-time.h" #include "timespec.h" -#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ +/* On native Windows, use SetFileTime; but avoid this when compiling + GNU Emacs, which arranges for this in some other way and which + defines WIN32_LEAN_AND_MEAN itself. */ + +#if ((defined _WIN32 || defined __WIN32__) \ + && ! defined __CYGWIN__ && ! defined EMACS_CONFIGURATION) +# define USE_SETFILETIME # define WIN32_LEAN_AND_MEAN # include # include "msvc-nothrow.h" @@ -277,7 +283,7 @@ fdutimens (int fd, char const *file, struct timespec const timespec[2]) lutimensat_works_really = -1; #endif /* HAVE_UTIMENSAT || HAVE_FUTIMENS */ -#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ +#ifdef USE_SETFILETIME /* On native Windows, use SetFileTime(). See */