emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] master 16f11be 1/2: Fix 'rename' on MS-Windows


From: Eli Zaretskii
Subject: [Emacs-diffs] master 16f11be 1/2: Fix 'rename' on MS-Windows
Date: Mon, 14 Aug 2017 12:32:01 -0400 (EDT)

branch: master
commit 16f11be4b96fc37204dc950e64f78ed340cd70d8
Author: Eli Zaretskii <address@hidden>
Commit: Eli Zaretskii <address@hidden>

    Fix 'rename' on MS-Windows
    
    * src/w32.c (sys_rename_replace): Use the FORCE argument only if
    the primitive rename errors out with EEXIST.
---
 src/w32.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/src/w32.c b/src/w32.c
index c5b51bb..c821e24 100644
--- a/src/w32.c
+++ b/src/w32.c
@@ -4502,7 +4502,7 @@ sys_rename_replace (const char *oldname, const char 
*newname, BOOL force)
       filename_to_utf16 (temp, temp_w);
       filename_to_utf16 (newname, newname_w);
       result = _wrename (temp_w, newname_w);
-      if (result < 0 && force)
+      if (result < 0)
        {
          DWORD w32err = GetLastError ();
 
@@ -4520,7 +4520,7 @@ sys_rename_replace (const char *oldname, const char 
*newname, BOOL force)
                  && (attributes & FILE_ATTRIBUTE_DIRECTORY))
                errno = EXDEV;
            }
-         else if (errno == EEXIST)
+         else if (errno == EEXIST && force)
            {
              if (_wchmod (newname_w, 0666) != 0)
                return result;
@@ -4546,7 +4546,7 @@ sys_rename_replace (const char *oldname, const char 
*newname, BOOL force)
        filename_to_ansi (temp, temp_a);
       filename_to_ansi (newname, newname_a);
       result = rename (temp_a, newname_a);
-      if (result < 0 && force)
+      if (result < 0)
        {
          DWORD w32err = GetLastError ();
 
@@ -4559,7 +4559,7 @@ sys_rename_replace (const char *oldname, const char 
*newname, BOOL force)
                  && (attributes & FILE_ATTRIBUTE_DIRECTORY))
                errno = EXDEV;
            }
-         else if (errno == EEXIST)
+         else if (errno == EEXIST && force)
            {
              if (_chmod (newname_a, 0666) != 0)
                return result;



reply via email to

[Prev in Thread] Current Thread [Next in Thread]