kernel32: Fix moving a file to the same one

André Hentschel nerv at dawncrow.de
Sun Mar 28 13:19:43 CDT 2010


---
 dlls/kernel32/path.c       |    3 +++
 dlls/kernel32/tests/file.c |    2 +-
 2 files changed, 4 insertions(+), 1 deletions(-)

diff --git a/dlls/kernel32/path.c b/dlls/kernel32/path.c
index 2b69e8c..d34b3a7 100644
--- a/dlls/kernel32/path.c
+++ b/dlls/kernel32/path.c
@@ -1031,6 +1031,9 @@ BOOL WINAPI MoveFileWithProgressW( LPCWSTR source, LPCWSTR dest,
     if (flag & MOVEFILE_WRITE_THROUGH)
         FIXME("MOVEFILE_WRITE_THROUGH unimplemented\n");
 
+    if (!strcmpiW( source, dest ))
+        return TRUE; /* we are done */
+
     /* check if we are allowed to rename the source */
 
     if (!RtlDosPathNameToNtPathName_U( source, &nt_name, NULL, NULL ))
diff --git a/dlls/kernel32/tests/file.c b/dlls/kernel32/tests/file.c
index b6f066e..bf3e83e 100644
--- a/dlls/kernel32/tests/file.c
+++ b/dlls/kernel32/tests/file.c
@@ -589,7 +589,7 @@ static void test_CopyFileA(void)
     ok(ret != 0, "GetTempFileNameA error %d\n", GetLastError());
 
     ret = MoveFileA(source, source);
-    todo_wine ok(ret, "MoveFileA: failed, error %d\n", GetLastError());
+    ok(ret, "MoveFileA: failed, error %d\n", GetLastError());
 
     /* make the source have not zero size */
     hfile = CreateFileA(source, GENERIC_WRITE, 0, NULL, OPEN_EXISTING, 0, 0 );
-- 

Best Regards, André Hentschel



More information about the wine-patches mailing list