From fb26fc4b4ad7db1d12933aefc3d213c6f217092c Mon Sep 17 00:00:00 2001 From: Paul Eggert Date: Tue, 2 May 2017 00:40:41 -0700 Subject: [PATCH] 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. --- ChangeLog | 9 +++++++++ lib/utimens.c | 10 ++++++++-- 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index ad44003..8c91b23 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 0b3b8e2..5f3a846 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 */ -- 2.7.4