Hugh McMaster : cmd: 'del' should set %errorlevel% to zero, not one, on error.

Alexandre Julliard julliard at wine.codeweavers.com
Tue Nov 17 09:57:48 CST 2015


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

Author: Hugh McMaster <hugh.mcmaster at outlook.com>
Date:   Tue Nov 17 15:21:39 2015 +1100

cmd: 'del' should set %errorlevel% to zero, not one, on error.

Signed-off-by: Hugh McMaster <hugh.mcmaster at outlook.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 programs/cmd/builtins.c                  |  4 +---
 programs/cmd/tests/test_builtins.cmd     | 22 ++++++++++++++++++++++
 programs/cmd/tests/test_builtins.cmd.exp |  6 ++++++
 3 files changed, 29 insertions(+), 3 deletions(-)

diff --git a/programs/cmd/builtins.c b/programs/cmd/builtins.c
index 22f0580..a444330 100644
--- a/programs/cmd/builtins.c
+++ b/programs/cmd/builtins.c
@@ -1410,10 +1410,8 @@ BOOL WCMD_delete (WCHAR *args) {
 
         argsProcessed = TRUE;
         found = WCMD_delete_one(thisArg);
-        if (!found) {
-            errorlevel = 1;
+        if (!found)
             WCMD_output_stderr(WCMD_LoadMessage(WCMD_FILENOTFOUND), thisArg);
-        }
         foundAny |= found;
     }
 
diff --git a/programs/cmd/tests/test_builtins.cmd b/programs/cmd/tests/test_builtins.cmd
index 0a8a4f4..db286db 100644
--- a/programs/cmd/tests/test_builtins.cmd
+++ b/programs/cmd/tests/test_builtins.cmd
@@ -1493,6 +1493,28 @@ for /f "tokens=3,2,3*" %%i in ("a b c d e f g") do echo h=%%h i=%%i j=%%j k=%%k
 cd ..
 rd /s/q foobar
 
+echo ------------ Testing del ------------
+echo abc > file
+echo deleting 'file'
+del file
+if errorlevel 0 (
+    echo errorlevel is 0, good
+) else (
+    echo unexpected errorlevel, got %errorlevel%
+)
+if not exist file (
+    echo successfully deleted 'file'
+) else (
+    echo error deleting 'file'
+)
+echo attempting to delete 'file', even though it is not present
+del file
+if errorlevel 0 (
+    echo errorlevel is 0, good
+) else (
+    echo unexpected errorlevel, got %errorlevel%
+)
+
 echo ------------ Testing del /a ------------
 del /f/q *.test > nul
 echo r > r.test
diff --git a/programs/cmd/tests/test_builtins.cmd.exp b/programs/cmd/tests/test_builtins.cmd.exp
index b222158..c2879d6 100644
--- a/programs/cmd/tests/test_builtins.cmd.exp
+++ b/programs/cmd/tests/test_builtins.cmd.exp
@@ -1009,6 +1009,12 @@ h=%h i=a j=b k=c l=d e f g m=%m n=%n o=%o at or_broken@h=%h i=a j=b k=c l=d e f g m
 h=%h i=a j=c k= l= m=%m n=%n o=%o at or_broken@h=%h i=a j=c k= l= m= n=%n o=%o
 h=%h i=b j=c k= l= m=%m n=%n o=%o at or_broken@h=%h i=b j=c k= l= m= n=%n o=%o
 h=%h i=b j=c k= l= m=%m n=%n o=%o at or_broken@h=%h i=b j=c k= l= m= n=%n o=%o
+------------ Testing del ------------
+deleting 'file'
+errorlevel is 0, good
+successfully deleted 'file'
+attempting to delete 'file', even though it is not present
+errorlevel is 0, good
 ------------ Testing del /a ------------
 not-r.test not found after delete, good
 r.test found before delete, good




More information about the wine-cvs mailing list