Imported Upstream version 1.4.19
[platform/upstream/m4.git] / lib / rename.c
index e1d169a..7eae1c7 100644 (file)
@@ -1,6 +1,6 @@
 /* Work around rename bugs in some systems.
 
-   Copyright (C) 2001-2003, 2005-2006, 2009-2016 Free Software Foundation, Inc.
+   Copyright (C) 2001-2003, 2005-2006, 2009-2021 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -13,7 +13,7 @@
    GNU General Public License for more details.
 
    You should have received a copy of the GNU General Public License
-   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
 
 /* Written by Volker Borchert, Eric Blake.  */
 
@@ -23,7 +23,7 @@
 
 #undef rename
 
-#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+#if defined _WIN32 && ! defined __CYGWIN__
 /* The mingw rename has problems with trailing slashes; it also
    requires use of native Windows calls to allow atomic renames over
    existing files.  */
 
 # include "dirname.h"
 
+/* Don't assume that UNICODE is not defined.  */
+# undef MoveFileEx
+# define MoveFileEx MoveFileExA
+
 /* Rename the file SRC to DST.  This replacement is necessary on
    Windows, on which the system rename function will not replace
    an existing DST.  */
@@ -161,10 +165,8 @@ rpl_rename (char const *src, char const *dst)
         }
       if (rmdir (dst))
         {
-          error = errno;
           free (src_temp);
           free (dst_temp);
-          errno = error;
           return -1;
         }
       free (src_temp);