changeset 38531:affdef0af079

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.
author Paul Eggert <eggert@cs.ucla.edu>
date Tue, 02 May 2017 00:40:41 -0700
parents d209db99ac8f
children 65a32cc6cc23
files ChangeLog lib/utimens.c
diffstat 2 files changed, 17 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog	Mon May 01 18:00:56 2017 -0700
+++ b/ChangeLog	Tue May 02 00:40:41 2017 -0700
@@ -1,3 +1,12 @@
+2017-05-02  Paul Eggert  <eggert@cs.ucla.edu>
+
+	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  <eggert@cs.ucla.edu>
 
 	tzset: update doc for TZ problems on MS-Windows
--- a/lib/utimens.c	Mon May 01 18:00:56 2017 -0700
+++ b/lib/utimens.c	Tue May 02 00:40:41 2017 -0700
@@ -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 <windows.h>
 # include "msvc-nothrow.h"
@@ -277,7 +283,7 @@
   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
      <https://msdn.microsoft.com/en-us/library/ms724933.aspx>
      <https://msdn.microsoft.com/en-us/library/ms724284.aspx>  */