From b9ef4ca995350d1a520aba66de1d5e4209f3eb91 Mon Sep 17 00:00:00 2001 From: Ken Brown Date: Sat, 19 Aug 2017 17:17:27 -0400 Subject: [PATCH] Implement renameat_noreplace on recent Cygwin * src/sysdep.c [CYGWIN]: Include cygwin/fs.h. (renameat_noreplace) [RENAME_NOREPLACE]: Use renameat2. (Bug#27986) --- src/sysdep.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/sysdep.c b/src/sysdep.c index 12e9c83ee9..77221097db 100644 --- a/src/sysdep.c +++ b/src/sysdep.c @@ -42,6 +42,10 @@ along with GNU Emacs. If not, see . */ # include #endif +#ifdef CYGWIN +# include +#endif + #if defined DARWIN_OS || defined __FreeBSD__ # include #endif @@ -2685,6 +2689,8 @@ renameat_noreplace (int srcfd, char const *src, int dstfd, char const *dst) { #if defined SYS_renameat2 && defined RENAME_NOREPLACE return syscall (SYS_renameat2, srcfd, src, dstfd, dst, RENAME_NOREPLACE); +#elif defined RENAME_NOREPLACE /* Cygwin >= 2.9.0. */ + return renameat2 (srcfd, src, dstfd, dst, RENAME_NOREPLACE); #elif defined RENAME_EXCL return renameatx_np (srcfd, src, dstfd, dst, RENAME_EXCL); #else -- 2.14.1