From: Ken Brown Date: Sun, 10 Sep 2017 15:00:35 +0000 (-0400) Subject: Implement renameat_noreplace on recent Cygwin X-Git-Tag: emacs-26.0.90~207 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=c990f8d93dcc78aa98e58b89bddb666efcea2710;p=emacs.git Implement renameat_noreplace on recent Cygwin * src/sysdep.c [CYGWIN]: Include cygwin/fs.h. (renameat_noreplace) [RENAME_NOREPLACE]: Use renameat2. (Bug#27986) --- diff --git a/src/sysdep.c b/src/sysdep.c index b66a7453172..f5050e60f43 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