Jason Edmeades : cmd: Fix rmdir error during recursive delete.

Alexandre Julliard julliard at winehq.org
Tue Sep 4 12:38:36 CDT 2012


Module: wine
Branch: master
Commit: 94f9e789c94f90dad3d771cdabded15aeeedba8f
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=94f9e789c94f90dad3d771cdabded15aeeedba8f

Author: Jason Edmeades <us at edmeades.me.uk>
Date:   Mon Sep  3 22:03:58 2012 +0100

cmd: Fix rmdir error during recursive delete.

---

 programs/cmd/builtins.c              |    4 ++++
 programs/cmd/tests/test_builtins.cmd |    2 +-
 2 files changed, 5 insertions(+), 1 deletions(-)

diff --git a/programs/cmd/builtins.c b/programs/cmd/builtins.c
index a83947b..c92822b 100644
--- a/programs/cmd/builtins.c
+++ b/programs/cmd/builtins.c
@@ -1827,6 +1827,10 @@ void WCMD_remove_dir (WCHAR *command) {
         lpDir.pFrom  = thisArg;
         lpDir.fFlags = FOF_SILENT | FOF_NOCONFIRMATION | FOF_NOERRORUI;
         lpDir.wFunc  = FO_DELETE;
+
+        /* SHFileOperationW needs file list with a double null termination */
+        thisArg[lstrlenW(thisArg) + 1] = 0x00;
+
         if (SHFileOperationW(&lpDir)) WCMD_print_error ();
       }
     }
diff --git a/programs/cmd/tests/test_builtins.cmd b/programs/cmd/tests/test_builtins.cmd
index 36bc73f..13b53c5 100644
--- a/programs/cmd/tests/test_builtins.cmd
+++ b/programs/cmd/tests/test_builtins.cmd
@@ -1163,7 +1163,7 @@ if not exist foo (
 )
 mkdir foo\bar\baz
 echo foo > foo\bar\brol
-rmdir /s /Q foo
+rmdir /s /Q foo 2>&1
 if not exist foo (
     echo recursive rmdir succeeded
 ) else (




More information about the wine-cvs mailing list