a few more tests to clarify parsing oddities based on my playing around
Modified: trunk/reactos/subsys/system/cmd/seta_test.cmd

Modified: trunk/reactos/subsys/system/cmd/seta_test.cmd
--- trunk/reactos/subsys/system/cmd/seta_test.cmd	2005-09-21 01:22:56 UTC (rev 17955)
+++ trunk/reactos/subsys/system/cmd/seta_test.cmd	2005-09-21 01:23:44 UTC (rev 17956)
@@ -1,6 +1,8 @@
-@echo off
-@rem the next line illustrates a bug in our cmd
-set /a a=5%2
+@rem echo off
+
+@rem the next line reexecutes the script without params if it was called with params, else we'll get false failures
+@if not "%1"=="" seta_test.cmd
+
 @rem the next two lines illustrate bug in existing if code
 if not "=="=="==" goto failure
 if "=="=="==" goto next1
@@ -26,6 +28,10 @@
 if not "%a%"=="200" goto failure
 set /a a=42%%9
 if not "%a%"=="6" goto failure
+set /a a=5%2
+if not "%a%"=="5" goto failure
+set /a a=42^%13
+if not "%a%"=="423" goto failure
 set /a a=7+9
 if not "%a%"=="16" goto failure
 set /a a=9-7
@@ -36,6 +42,8 @@
 if not "%a%"=="9" goto failure
 set /a a=42^&9
 if not "%a%"=="8" goto failure
+set /a a=32^9
+if not "%a%"=="329" goto failure
 set /a a=32^^9
 if not "%a%"=="41" goto failure
 set /a a=10^|22