[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;