https://git.reactos.org/?p=reactos.git;a=commitdiff;h=58aee30e9967642d82d2a425e7e7d3e4c759adc2

commit 58aee30e9967642d82d2a425e7e7d3e4c759adc2
Author:     Amine Khaldi <[email protected]>
AuthorDate: Fri Jan 25 13:15:06 2019 +0100
Commit:     Amine Khaldi <[email protected]>
CommitDate: Fri Jan 25 13:15:06 2019 +0100

    [CMD_WINETEST] Sync with Wine Staging 4.0. CORE-15682
---
 modules/rostests/winetests/cmd/batch.c             |  19 +-
 modules/rostests/winetests/cmd/test_builtins.cmd   | 299 ++++++++++++++++++++-
 .../rostests/winetests/cmd/test_builtins.cmd.exp   | 122 +++++++--
 3 files changed, 416 insertions(+), 24 deletions(-)

diff --git a/modules/rostests/winetests/cmd/batch.c 
b/modules/rostests/winetests/cmd/batch.c
index 71966090e9..162e9cfa15 100644
--- a/modules/rostests/winetests/cmd/batch.c
+++ b/modules/rostests/winetests/cmd/batch.c
@@ -25,7 +25,7 @@
 static char workdir[MAX_PATH];
 static DWORD workdir_len;
 static char drive[2];
-static const DWORD drive_len = sizeof(drive)/sizeof(drive[0]);
+static const DWORD drive_len = ARRAY_SIZE(drive);
 static char path[MAX_PATH];
 static DWORD path_len;
 static char shortpath[MAX_PATH];
@@ -165,6 +165,7 @@ static const char *compare_line(const char *out_line, const 
char *out_end, const
     static const char path_cmd[]  = {'@','p','a','t','h','@'};
     static const char shortpath_cmd[]  = 
{'@','s','h','o','r','t','p','a','t','h','@'};
     static const char space_cmd[] = {'@','s','p','a','c','e','@'};
+    static const char spaces_cmd[] = {'@','s','p','a','c','e','s','@'};
     static const char tab_cmd[]   = {'@','t','a','b','@'};
     static const char or_broken_cmd[] = 
{'@','o','r','_','b','r','o','k','e','n','@'};
 
@@ -223,6 +224,15 @@ static const char *compare_line(const char *out_line, 
const char *out_end, const
                 } else {
                     err = out_end;
                 }
+            }else if(exp_ptr+sizeof(spaces_cmd) <= exp_end
+                    && !memcmp(exp_ptr, spaces_cmd, sizeof(spaces_cmd))) {
+                exp_ptr += sizeof(spaces_cmd);
+                if(out_ptr < out_end && *out_ptr == ' ') {
+                    while (out_ptr < out_end && *out_ptr == ' ') out_ptr++;
+                    continue;
+                } else {
+                    err = out_end;
+                }
             }else if(exp_ptr+sizeof(tab_cmd) <= exp_end
                     && !memcmp(exp_ptr, tab_cmd, sizeof(tab_cmd))) {
                 exp_ptr += sizeof(tab_cmd);
@@ -250,10 +260,8 @@ static const char *compare_line(const char *out_line, 
const char *out_end, const
 
             while(exp_ptr+sizeof(or_broken_cmd) <= exp_end && memcmp(exp_ptr, 
or_broken_cmd, sizeof(or_broken_cmd)))
                 exp_ptr++;
-            if(!exp_ptr)
-                return err;
-
             exp_ptr += sizeof(or_broken_cmd);
+            if (exp_ptr > exp_end) return err;
             out_ptr = out_line;
             err = NULL;
             continue;
@@ -469,8 +477,7 @@ START_TEST(batch)
     } else {
         path_len = 1; /* \ */
     }
-    shortpath_len = GetShortPathNameA(path, shortpath,
-                                      sizeof(shortpath)/sizeof(shortpath[0]));
+    shortpath_len = GetShortPathNameA(path, shortpath, ARRAY_SIZE(shortpath));
 
     argc = winetest_get_mainargs(&argv);
     if(argc > 2)
diff --git a/modules/rostests/winetests/cmd/test_builtins.cmd 
b/modules/rostests/winetests/cmd/test_builtins.cmd
index f6846283c7..f4dfc9f26d 100644
--- a/modules/rostests/winetests/cmd/test_builtins.cmd
+++ b/modules/rostests/winetests/cmd/test_builtins.cmd
@@ -179,6 +179,8 @@ if exist foo (type foo) else echo not supported
 echo --- redirections within IF statements
 if 1==1 echo foo1>bar
 type bar & del bar
+if 1==1 echo foo2>>bar
+type bar & del bar
 echo -----
 if 1==1 (echo foo2>bar) else echo baz2>bar
 type bar & del bar
@@ -418,6 +420,7 @@ if 1==1 (echo n1) else echo n2|echo n3
 if 1==1 (echo o1) else echo o2&&echo o3
 if 1==1 (echo p1) else echo p2||echo p3
 if 1==1 (echo q1) else echo q2&echo q3
+echo ---
 echo --- chain else (if false)
 if 1==0 echo a1 else echo a2
 if 1==0 echo b1|echo b2 else echo b3
@@ -506,6 +509,65 @@ rem Only the final quote ends the string
 set "WINE_FOO=apple"banana"grape"orange
 echo '%WINE_FOO%'
 set WINE_FOO=
+rem set PATH must work with quotes
+set PATH_BACKUP=%PATH%
+mkdir folder
+mkdir "fol;der"
+echo echo I'm here! > "fol;der\sub1.bat"
+echo echo I'm here! > folder\sub1.bat
+set PATH=nothing;"fol;der"
+call sub1
+set PATH="folder
+call sub1
+set PATH=folder"
+call sub1
+del "fol;der\sub1.bat"
+del folder\sub1.bat
+rmdir "fol;der"
+rmdir folder
+PATH=%PATH_BACKUP%
+
+echo ------------ Testing 'choice' ------------
+
+rem Windows XP and Windows 2000 do not come with choice
+rem echo is used for @or_broken@ formatting
+choice /C:ABC /M "Example message" /D A /T:0
+if %ERRORLEVEL% EQU 9009 (
+  echo choice unavailable
+)
+echo %ERRORLEVEL%
+choice /C ABC "/M:Example message" /D:B /T 0
+if %ERRORLEVEL% EQU 9009 (
+  echo choice unavailable
+)
+echo %ERRORLEVEL%
+choice /C def /D:f /T:0
+if %ERRORLEVEL% EQU 9009 (
+  echo choice unavailable
+)
+echo %ERRORLEVEL%
+REM If a pipe fails due to a nonexistent command
+REM it will stop the whole program's execution
+if %ERRORLEVEL% NEQ 9009 (
+  echo Y | choice /C ABCXYZ /D A /T 2
+)
+if %ERRORLEVEL% EQU 9009 (
+  echo choice unavailable
+)
+echo %ERRORLEVEL%
+choice /C ABC /N /D A /T 0
+if %ERRORLEVEL% EQU 9009 (
+  echo choice unavailable
+)
+echo %ERRORLEVEL%
+choice /C abcABC /CS /D:A /T:0
+if %ERRORLEVEL% EQU 9009 (
+  echo choice unavailable
+)
+echo %ERRORLEVEL%
+rem intentional error
+choice /C abcABC /D:A /T:0 >NUL 2>NUL
+echo %ERRORLEVEL%
 
 echo ------------ Testing variable expansion ------------
 call :setError 0
@@ -667,6 +729,15 @@ echo '%~xs1'
 goto :eof
 :endEchoFuns
 
+echo ------------ Testing parameter zero ------------
+call :func parm1 parm2
+goto :endParm0
+:func
+echo %~0 %~1
+echo [%0] [%~d0] [%~p0] [%~n0] [%~x0] [%~s0]
+goto :EOF
+:endParm0
+
 echo ------------ Testing variable delayed expansion ------------
 rem NT4 doesn't support this
 echo --- default mode (load-time expansion)
@@ -907,6 +978,13 @@ if %elseIF% == 1 (
 ) else (
   echo else if seems to be broken
 )
+if "x" == "a" (
+  echo broken1
+) else (
+  echo expected1
+  if "y" == "b" echo broken2
+  echo expected post-embedded if
+)
 echo --- case sensitivity with and without /i option
 if bar==BAR echo if does not default to case sensitivity
 if not bar==BAR echo if seems to default to case sensitivity
@@ -979,6 +1057,69 @@ for %%i in (%WINE_STR_PARMS%) do (
 for %%i in (%WINE_STR_PARMS%) do (
     for %%j in (%WINE_STR_PARMS%) do (
         call :GTRtest %%i %%j))
+
+echo ------------ Testing if/exist ------------
+mkdir subdir
+echo something>subdir\bar
+echo something else>foo
+if exist foo (
+   echo exist explicit works
+) else (
+   echo ERROR exist explicit broken
+)
+if exist bar (
+   echo ERROR exist explicit unknown file broken
+) else (
+   echo exist explicit unknown file works
+)
+if exist subdir\bar (
+   echo exist explicit in subdir works
+) else (
+   echo ERROR exist explicit in subdir broken
+)
+if exist fo* (
+   echo exist simple wildcard works
+) else (
+   echo ERROR exist simple wildcard broken
+)
+if exist subdir\ba* (
+   echo exist wildcard works
+) else (
+   echo ERROR exist wildcard broken
+)
+if not exist subdir\ba* (
+   echo ERROR negate exist wildcard broken
+) else (
+   echo negate exist wildcard works
+)
+if exist idontexist\ba* (
+   echo ERROR exist wildcard bad subdir broken
+) else (
+   echo exist wildcard bad subdir broken works
+)
+if exist subdir (
+   echo exist subdir ok
+) else (
+   echo ERROR exist subdir not working
+)
+if exist subdir\. (
+   echo exist subdir with . ok
+) else (
+   echo ERROR exist subdir with . not working
+)
+if exist subdir\ (
+   echo exist subdir with \ ok
+) else (
+   echo ERROR exist subdir with \ not working
+)
+if exist "subdir\" (
+   echo exist subdir with \ and quotes ok
+) else (
+   echo ERROR exist subdir with \ and quotes not working
+)
+del foo subdir\bar
+rd subdir
+
 echo ------ for numbers
 if -1 LSS 1 (echo negative numbers handled)
 if not -1 LSS -10 (echo negative numbers handled)
@@ -1112,9 +1253,16 @@ mkdir foobar & cd foobar
 mkdir foo
 mkdir bar
 mkdir baz
+mkdir pop
 echo > bazbaz
 echo --- basic wildcards
 for %%i in (ba*) do echo %%i
+echo --- wildcards in subdirs
+echo something>pop\bar1
+echo something>pop\bar2.txt
+echo something>pop\bar3
+for %%f in (pop\ba*) do ( call echo %%f )
+rmdir /s/q pop
 echo --- for /d
 for /d %%i in (baz foo bar) do echo %%i 2>&1
 rem Confirm we don't match files:
@@ -1321,6 +1469,45 @@ for /L %%i in (2,2,1) do (
   echo %%i
   echo FAILED
 )
+echo --- rems inside for loops
+for /f %%i IN ("hello") DO (
+   REM foo|echo ERROR unexpected execution 1
+   @REM foo|echo ERROR unexpected execution 2
+   @     REM foo|echo ERROR unexpected execution 3
+)
+echo --- ifs inside for loops
+for %%i in (test) do (
+    echo a1
+    if 1==1 (
+        echo b1
+    ) else (
+        echo c1
+    )
+    echo d1
+)
+for %%i in (test) do (
+    echo a2
+    if 1==1 (
+        echo b2
+    ) else echo c2
+    echo d2
+)
+for %%i in (test) do (
+    echo a3
+    if 1==0 (
+        echo b3
+    ) else echo c3
+    echo d3
+)
+for %%i in (test) do (
+    echo a4
+    if 1==0 (
+        echo b4
+    ) else (
+        echo c4
+    )
+    echo d4
+)
 echo --- set /a
 goto :testseta
 
@@ -1563,8 +1750,11 @@ mkdir foobar & cd foobar
 echo ------ string argument
 rem NT4 does not support usebackq
 for /F %%i in ("a b c") do echo %%i
+for /F %%i in (  "a b c"    ) do echo X%%iX
 for /f usebackq %%i in ('a b c') do echo %%i>output_file
 if not exist output_file (echo no output) else (type output_file & del 
output_file)
+for /f usebackq %%i in (   'a b c'   ) do echo X%%iX>output_file
+if not exist output_file (echo no output) else (type output_file & del 
output_file)
 for /f %%i in ("a ") do echo %%i
 for /f usebackq %%i in ('a ') do echo %%i>output_file
 if not exist output_file (echo no output) else (type output_file & del 
output_file)
@@ -1614,9 +1804,13 @@ if "%CD%"=="" goto :SkipFORFcmdNT4
 for /f %%i in ('echo.Passed1') do echo %%i
 for /f "usebackq" %%i in (`echo.Passed2`) do echo %%i
 for /f usebackq %%i in (`echo.Passed3`) do echo %%i
+for /f "usebackq" %%i in (`"c:\windows\system32\cmd.exe" /C echo Passed4`) do 
echo %%i
+for /f "usebackq" %%i in (`""c:\windows\system32\cmd.exe" /C echo Passed5"`) 
do echo %%i
+for /f %%i in (  'echo.Passed6'  ) do echo %%i
+for /f "usebackq" %%i in (   `echo.Passed7` ) do echo %%i
 goto :ContinueFORF
 :SkipFORFcmdNT4
-for /l %%i in (1,1,3) do echo Missing functionality - Broken%%i
+for /l %%i in (1,1,7) do echo Missing functionality - Broken%%i
 :ContinueFORF
 rem FIXME: Rest not testable right now in wine: not implemented and would need
 rem preliminary grep-like program implementation (e.g. like findstr or fc) even
@@ -1694,6 +1888,13 @@ for /f "tokens=1,2,3*" %%i in ("a b c d e f g") do echo 
h=%%h i=%%i j=%%j k=%%k
 for /f "tokens=1,1,3*" %%i in ("a b c d e f g") do echo h=%%h i=%%i j=%%j 
k=%%k l=%%l m=%%m n=%%n o=%%o
 for /f "tokens=2,2,3*" %%i in ("a b c d e f g") do echo h=%%h i=%%i j=%%j 
k=%%k l=%%l m=%%m n=%%n o=%%o
 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 l=%%l m=%%m n=%%n o=%%o
+rem Special case tokens=* or tokens=n,*
+echo 3.14>testfile
+FOR /F "tokens=*"  %%A IN (testfile) DO @echo 1:%%A,%%B
+FOR /F "tokens=1*" %%A IN (testfile) DO @echo 2:%%A,%%B
+FOR /F "tokens=2*" %%A IN (testfile) DO @echo 3:%%A,%%B
+FOR /F "tokens=1,* delims=." %%A IN (testfile) DO @echo 4:%%A,%%B
+del testfile
 cd ..
 rd /s/q foobar
 echo ------ parameter splitting
@@ -1706,6 +1907,12 @@ goto :forFParameterSplittingEnd
 echo %~0 %~1 %~2 %~3 %~4 %~5
 goto :eof
 :forFParameterSplittingEnd
+echo 3.14>testfile
+FOR /F "delims=. tokens=*"  %%A IN (testfile) DO @echo 4:%%A,%%B
+FOR /F "delims=. tokens=1*" %%A IN (testfile) DO @echo 5:%%A,%%B
+FOR /F "delims=. tokens=2*" %%A IN (testfile) DO @echo 6:%%A,%%B
+FOR /F "delims=. tokens=3*" %%A IN (testfile) DO @echo 7:%%A,%%B
+del testfile
 
 echo ------------ Testing del ------------
 echo abc > file
@@ -2977,6 +3184,57 @@ echo FAILURE at dest 10
 :dest10:this is also ignored
 echo Correctly ignored trailing information
 
+rem Testing which label is reached when there are many options
+echo Begin:
+set nextlabel=
+call :sub
+set nextlabel=middle
+goto :sub
+
+:sub
+echo ..First sub
+if not "%nextlabel%"=="" goto :%nextlabel%
+goto :EOF
+
+:sub
+echo ..Second sub
+if not "%nextlabel%"=="" goto :%nextlabel%
+goto :EOF
+
+:middle
+echo Middle:
+set nextlabel=
+call :sub
+set nextlabel=nearend
+goto :sub
+
+:sub
+echo ..Third sub
+if not "%nextlabel%"=="" goto :%nextlabel%
+goto :EOF
+
+:nearend
+echo Near end:
+set nextlabel=
+call :sub
+set nextlabel=end
+goto :sub
+
+:sub
+echo ..Fourth sub
+if not "%nextlabel%"=="" goto :%nextlabel%
+goto :EOF
+
+:end
+echo At end:
+set nextlabel=
+call :sub
+set nextlabel=done
+goto :sub
+
+:done
+echo Finished
+
 echo ------------ Testing PATH ------------
 set WINE_backup_path=%path%
 set path=original
@@ -2988,6 +3246,45 @@ path
 set path=%WINE_backup_path%
 set WINE_backup_path=
 
+echo ------------ Testing start /W ------------
+echo start /W failed to wait>foobar.txt
+start /W "" cmd /C "ping -n1 & echo start /W seems to really wait>foobar.txt"& 
type foobar.txt& del foobar.txt
+
+echo ------------ Testing changing the drive letter ----------
+pushd C:\
+
+echo Normal:
+call :setError 0
+C:
+if errorlevel 1 echo Normal drive change failed
+
+echo Normal+space
+call :setError 0
+C:@space@
+if errorlevel 1 echo Normal+space drive change failed
+
+echo Normal+space+garbage
+call :setError 0
+C: garbage
+if errorlevel 1 echo Normal+space+garbage drive change failed
+
+call :setError 0
+echo Quoted should fail
+"C:"
+if not errorlevel 1 echo quoted drive change unexpectedly worked
+
+echo Normal+tab
+call :setError 0
+C:@tab@
+if errorlevel 1 echo Normal+tab drive change failed
+
+echo Normal+tab+garbage
+call :setError 0
+C:@tab@garbagetab
+if errorlevel 1 echo Normal+tab+garbage drive change failed
+
+popd
+
 echo ------------ Testing combined CALLs/GOTOs ------------
 echo @echo off>foo.cmd
 echo goto :eof>>foot.cmd
diff --git a/modules/rostests/winetests/cmd/test_builtins.cmd.exp 
b/modules/rostests/winetests/cmd/test_builtins.cmd.exp
index 5512fee072..d78d91a6cf 100644
--- a/modules/rostests/winetests/cmd/test_builtins.cmd.exp
+++ b/modules/rostests/winetests/cmd/test_builtins.cmd.exp
@@ -205,7 +205,8 @@ food21
 @todo_wine@foo7@space@@space@@or_broken@not supported@space@
 @todo_wine@foo@or_broken@not supported
 --- redirections within IF statements
-@todo_wine@foo1
+foo1
+foo2
 -----
 foo2
 foo3
@@ -428,8 +429,9 @@ n1
 o1
 p1
 q1
+@todo_wine@---
 --- chain else (if false)
-@todo_wine@j3
+j3
 ---
 k3
 l3
@@ -474,6 +476,23 @@ foo
 'jim fred'
 'jim'
 'apple"banana"grape'
+I'm here!@space@
+I'm here!@space@
+I'm here!@space@
+------------ Testing 'choice' ------------
+@todo_wine@Example message [A,B,C]?A@or_broken@choice unavailable
+@todo_wine@1@or_broken@9009
+@todo_wine@Example message [A,B,C]?B@or_broken@choice unavailable
+@todo_wine@2@or_broken@9009
+@todo_wine@[D,E,F]?F@or_broken@choice unavailable
+@todo_wine@3@or_broken@9009
+@todo_wine@[A,B,C,X,Y,Z]?Y@or_broken@choice unavailable
+@todo_wine@5@or_broken@9009
+@todo_wine@A@or_broken@choice unavailable
+@todo_wine@1@or_broken@9009
+@todo_wine@[a,b,c,A,B,C]?A@or_broken@choice unavailable
+@todo_wine@4@or_broken@9009
+@todo_wine@255@or_broken@9009
 ------------ Testing variable expansion ------------
 ~p0 should be path containing batch file
 @path@
@@ -526,9 +545,9 @@ N
 '.OOL'
 '.TABC'
 ''
-@todo_wine@'@drive@@shortpath@R S'@or_broken@''
-@todo_wine@'@drive@@shortpath@T'@or_broken@''
-@todo_wine@'@drive@@[email protected]'@or_broken@''
+'@drive@@shortpath@R S'@or_broken@''
+'@drive@@shortpath@T'@or_broken@''
+'@drive@@[email protected]'@or_broken@''
 ''@or_broken@'%~ai'
 ''@or_broken@'%~ai'
 '--a------'@or_broken@'--a--------'@or_broken@'--a--c---'@or_broken@'%~ai'
@@ -562,9 +581,9 @@ N
 '.OOL'
 '.TABC'
 ''
-@todo_wine@'@drive@@shortpath@R S'@or_broken@''
-@todo_wine@'@drive@@shortpath@T'@or_broken@''
-@todo_wine@'@drive@@[email protected]'@or_broken@''
+'@drive@@shortpath@R S'@or_broken@''
+'@drive@@shortpath@T'@or_broken@''
+'@drive@@[email protected]'@or_broken@''
 @drive@@path@
 @drive@@path@
 @drive@
@@ -573,6 +592,9 @@ N
 @drive@
 ''
 '.eh'@or_broken@''
+------------ Testing parameter zero ------------
+:func parm1
+[:func] [@drive@] [@path@] [test] [.cmd] [@drive@@[email protected]]
 ------------ Testing variable delayed expansion ------------
 --- default mode (load-time expansion)
 foo
@@ -657,6 +679,8 @@ if seems not to detect /c as parameter
 else if seems to work
 else if seems to work
 else if seems to work
+expected1
+expected post-embedded if
 --- case sensitivity with and without /i option
 if seems to default to case sensitivity
 if /i seems to work
@@ -768,6 +792,18 @@ BA GTR B
 BA GTR AB
 BA GTR AA
 AA GTR A
+------------ Testing if/exist ------------
+exist explicit works
+exist explicit unknown file works
+exist explicit in subdir works
+exist simple wildcard works
+exist wildcard works
+negate exist wildcard works
+exist wildcard bad subdir broken works
+exist subdir ok
+exist subdir with . ok
+exist subdir with \ ok
+exist subdir with \ and quotes ok
 ------ for numbers
 negative numbers handled
 negative numbers handled
@@ -909,6 +945,10 @@ B C
 B D
 --- basic wildcards
 bazbaz
+--- wildcards in subdirs
+pop\bar1@space@
+pop\bar2.txt@space@
+pop\bar3@space@
 --- for /d
 baz@space@
 foo@space@
@@ -970,6 +1010,20 @@ ErrorLevel 0
 -1
 1
 3
+--- rems inside for loops
+--- ifs inside for loops
+a1
+b1
+d1
+a2
+b2
+d2
+a3
+c3
+d3
+a4
+c4
+d4
 --- set /a
 ------ individual operations
 WINE_foo correctly 3
@@ -1141,7 +1195,9 @@ WINE_bar correctly 6@or_broken@ERROR: WINE_bar 
incorrectly 5 [6]
 --- for /F
 ------ string argument
 a
+XaX
 a@or_broken@no output
+XaX@or_broken@no output
 a
 a@or_broken@no output
 a
@@ -1177,6 +1233,10 @@ c
 Passed1@or_broken@Missing functionality - Broken1
 Passed2@or_broken@Missing functionality - Broken2
 Passed3@or_broken@Missing functionality - Broken3
+Passed4@or_broken@Missing functionality - Broken4
+Passed5@or_broken@Missing functionality - Broken5
+Passed6@or_broken@Missing functionality - Broken6
+Passed7@or_broken@Missing functionality - Broken7
 ------ eol option
 and@or_broken@Broken NT4 functionality1
 Line@or_broken@Broken NT4 functionality2
@@ -1222,9 +1282,15 @@ h=%h i=a j=b k=c l=d e f g m=%m n=%n o=%o@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@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@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@or_broken@h=%h i=b j=c k= l= m= n=%n o=%o
+1:3.14,%B
+2:3.14,
+4:3,14
 ------ parameter splitting
 :forFParameterSplittingFunc myparam1=myvalue1 myparam2=myparam2 
mytest@space@@space@@space@
 :forFParameterSplittingFunc myparam1=myvalue1 myparam2=myparam2 
mytest@space@@space@@space@
+4:3.14,%B
+5:3,14
+6:14,
 ------------ Testing del ------------
 deleting 'file'
 errorlevel is 0, good
@@ -1340,22 +1406,22 @@ bar\baz removed
 @drive@@path@foobar
 @pwd@
 ------------ Testing attrib ------------
-A            @drive@@path@foobar\foo@or_broken@A          
@drive@@path@foobar\foo@or_broken@A       I    @drive@@path@foobar\foo
+A@spaces@@drive@@path@foobar\foo@or_broken@A       
I@spaces@@drive@@path@foobar\foo
 --- read-only attribute
-A    R       @drive@@path@foobar\foo@or_broken@A    R     
@drive@@path@foobar\foo@or_broken@A    R  I    @drive@@path@foobar\foo
+A    R@spaces@@drive@@path@foobar\foo@or_broken@A    R  
I@spaces@@drive@@path@foobar\foo
 foo
 foo original contents
 Read-only file not deleted
 Read-only file forcibly deleted
 --- recursive behaviour
-A            @drive@@path@foobar\baz\level2@or_broken@A          
@drive@@path@foobar\baz\level2@or_broken@A       I    
@drive@@path@foobar\baz\level2
-A    R       @drive@@path@foobar\level1@or_broken@A    R     
@drive@@path@foobar\level1@or_broken@A    R  I    @drive@@path@foobar\level1
-A    R       @drive@@path@foobar\baz\level2@or_broken@A    R     
@drive@@path@foobar\baz\level2@or_broken@A    R  I    
@drive@@path@foobar\baz\level2
-A            @drive@@path@foobar\bar@or_broken@A          
@drive@@path@foobar\bar@or_broken@A       I    @drive@@path@foobar\bar
+A@spaces@@drive@@path@foobar\baz\level2@or_broken@A       
I@spaces@@drive@@path@foobar\baz\level2
+A    R@spaces@@drive@@path@foobar\level1@or_broken@A    R  
I@spaces@@drive@@path@foobar\level1
+A    R@spaces@@drive@@path@foobar\baz\level2@or_broken@A    R  
I@spaces@@drive@@path@foobar\baz\level2
+A@spaces@@drive@@path@foobar\bar@or_broken@A       
I@spaces@@drive@@path@foobar\bar
 --- folders processing
-             @drive@@path@foobar@or_broken@           
@drive@@path@foobar@or_broken@        I    @drive@@path@foobar
-@todo_wine@     R       @drive@@path@foobar\baz@or_broken@     R     
@drive@@path@foobar\baz@or_broken@           @drive@@path@foobar\baz@or_broken@ 
    R  I    @drive@@path@foobar\baz
-A            @drive@@path@foobar\baz\toto@or_broken@A          
@drive@@path@foobar\baz\toto@or_broken@A       I    @drive@@path@foobar\baz\toto
+@spaces@@drive@@path@foobar@or_broken@        I@spaces@@drive@@path@foobar
+@todo_wine@     
R@spaces@@drive@@path@foobar\baz@or_broken@@spaces@@drive@@path@foobar\baz@or_broken@
     R  I@spaces@@drive@@path@foobar\baz
+A@spaces@@drive@@path@foobar\baz\toto@or_broken@A       
I@spaces@@drive@@path@foobar\baz\toto
 toto
 lulu
 file created in read-only dir
@@ -1570,10 +1636,32 @@ goto with redirections worked
 Ignoring double colons worked
 label with mixed whitespace and no echo worked
 Correctly ignored trailing information
+Begin:
+..First sub
+..First sub
+Middle:
+..Third sub
+..Third sub
+Near end:
+..Fourth sub
+..Fourth sub
+At end:
+..First sub
+..First sub
+Finished
 ------------ Testing PATH ------------
 PATH=original
 PATH=try2
 PATH=try3
+------------ Testing start /W ------------
+start /W seems to really wait
+------------ Testing changing the drive letter ----------
+Normal:
+Normal+space
+Normal+space+garbage
+Quoted should fail
+Normal+tab
+Normal+tab+garbage
 ------------ Testing combined CALLs/GOTOs ------------
 world
 cheball

Reply via email to