[1/6] cmd: Ignore trailing whitespace when using cd (resend) (try 2)

Frédéric Delanoy frederic.delanoy at gmail.com
Fri Aug 26 19:11:28 CDT 2011


---
 programs/cmd/builtins.c                  |    2 ++
 programs/cmd/tests/test_builtins.cmd     |   30 ++++++++++--------------------
 programs/cmd/tests/test_builtins.cmd.exp |    6 +++---
 3 files changed, 15 insertions(+), 23 deletions(-)

diff --git a/programs/cmd/builtins.c b/programs/cmd/builtins.c
index 5d7df82..a2c5eec 100644
--- a/programs/cmd/builtins.c
+++ b/programs/cmd/builtins.c
@@ -2118,6 +2118,8 @@ void WCMD_setshow_default (const WCHAR *command) {
       if (*command != '"') *pos++ = *command;
       command++;
     }
+    while (pos > command && (*(pos-1) == ' ' || *(pos-1) == '\t'))
+      pos--;
     *pos = 0x00;
 
     /* Search for appropriate directory */
diff --git a/programs/cmd/tests/test_builtins.cmd b/programs/cmd/tests/test_builtins.cmd
index 78eea97..1f9bb78 100644
--- a/programs/cmd/tests/test_builtins.cmd
+++ b/programs/cmd/tests/test_builtins.cmd
@@ -103,8 +103,7 @@ type foo
 del foo
 echo food21>>foo
 type foo
-cd ..
-rd /s/q foobar
+cd .. & rd /s/q foobar
 
 echo ------------ Testing ^^ escape character --------------
 rem Using something like "echo foo^" asks for an additional char after a "More?" prompt on the following line; it's not possible to currently test that non-interactively
@@ -494,8 +493,7 @@ if exist foo (
 ) else (
     echo ***
 )
-cd ..
-rd foobar
+cd .. & rd foobar
 
 echo ------------ Testing if/else --------------
 echo if/else should work with blocks
@@ -594,8 +592,7 @@ rem del tmp
 rem for /d %%i in (*) do echo %%i>> tmp
 rem sort < tmp
 rem del tmp
-cd ..
-rd /s/Q foobar
+cd .. & rd /s/Q foobar
 echo ...for /L
 rem Some cases loop forever writing 0s, like e.g. (1,0,1), (1,a,3) or (a,b,c); those can't be tested here
 for /L %%i in (1,2,0) do echo %%i
@@ -899,8 +896,7 @@ if exist foo (echo foo created) else echo foo not created!
 if exist bar (echo bar created) else echo bar not created!
 if exist foobar (echo foobar created) else echo foobar not created!
 if exist bar\baz (echo bar\baz created) else echo bar\baz not created!
-cd ..
-rd /s/q foobaz
+cd .. & rd /s/q foobaz
 call :setError 0
 mkdir foo\*
 echo mkdir foo\* errorlevel %ErrorLevel%
@@ -970,8 +966,7 @@ if not exist foo (echo foo removed) else echo foo not removed!
 if not exist bar (echo bar removed) else echo bar not removed!
 if not exist foobar (echo foobar removed) else echo foobar not removed!
 if not exist bar\baz (echo bar\baz removed) else echo bar\baz not removed!
-cd ..
-rd /s/q foobaz
+cd .. & rd /s/q foobaz
 
 echo ------------ Testing attrib --------------
 rem FIXME Add tests for archive, hidden and system attributes + mixed attributes modifications
@@ -1000,8 +995,7 @@ if not exist foo (
     attrib -r foo
     del foo
 )
-cd ..
-rd /s/q foobar
+cd .. & rd /s/q foobar
 echo ... recursive behaviour
 mkdir foobar\baz & cd foobar
 echo > level1
@@ -1015,8 +1009,7 @@ attrib level1
 attrib baz\level2
 echo > bar
 attrib bar
-cd ..
-rd /s/q foobar
+cd .. & rd /s/q foobar
 echo ... folders processing
 mkdir foobar
 attrib foobar
@@ -1031,8 +1024,7 @@ type baz\toto
 echo > baz\lala
 rem Oddly windows allows file creation in a read-only directory...
 if exist baz\lala (echo file created in read-only dir) else echo file not created
-cd ..
-rd /s/q foobar
+cd .. & rd /s/q foobar
 
 echo ------------ Testing CALL --------------
 mkdir foobar & cd foobar
@@ -1091,8 +1083,7 @@ echo %ErrorLevel%
 rem First look for programs in the path before trying a builtin
 echo echo non-builtin dir> dir.cmd
 call dir /b
-cd ..
-rd /s/q foobar
+cd .. & rd /s/q foobar
 
 echo ------------ Testing setlocal/endlocal ------------
 call :setError 0
@@ -1133,8 +1124,7 @@ set VAR=globalval
 call test.cmd
 echo %VAR%
 set VAR=
-cd ..
-rd /q/s foobar
+cd .. & rd /q/s foobar
 
 echo -----------Testing Errorlevel-----------
 rem WARNING: Do *not* add tests using ErrorLevel after this section
diff --git a/programs/cmd/tests/test_builtins.cmd.exp b/programs/cmd/tests/test_builtins.cmd.exp
index 85afd34..17d828c 100644
--- a/programs/cmd/tests/test_builtins.cmd.exp
+++ b/programs/cmd/tests/test_builtins.cmd.exp
@@ -300,7 +300,7 @@ foo
 foo1
 bar2 at space@
 foo2
- at todo_wine@foobar deleted
+foobar deleted
 @todo_wine at ...on success conditional &&
 @todo_wine at foo3 not created
 bar4 at space@
@@ -317,8 +317,8 @@ Current dir: @pwd@\foobar at or_broken@Current dir:@space@
 @pwd@
 @pwd@\foobar
 @pwd@
- at todo_wine@@pwd@
- at todo_wine@@pwd@
+ at pwd@
+ at pwd@
 @pwd@\foobar\bar bak
 @pwd@\foobar\bar bak
 @pwd@\foobar\bar bak
-- 
1.7.6




More information about the wine-patches mailing list