Various fixes to the way cmd handles errorlevel and the "return values" of commands:
authorJeffrey Morlan <mrnobo1024@yahoo.com>
Sun, 12 Apr 2009 23:51:15 +0000 (23:51 +0000)
committerJeffrey Morlan <mrnobo1024@yahoo.com>
Sun, 12 Apr 2009 23:51:15 +0000 (23:51 +0000)
commit8cf11060a9e76d1c83bd1ceb39d0a52d329cae63
tree14c589482d9ac8567dcffbdd21e62432cf52f37a
parent54f4f31daedcf6fa3595c3ecac18e50c171903e3
Various fixes to the way cmd handles errorlevel and the "return values" of commands:
- Changed type of return values from BOOL to INT, with 0 indicating success and any other value indicating failure. If the left side of an || operator returns nonzero, errorlevel is set to that value.
- The return value of a batch file or FOR is the return value of the last command executed in it. An empty batch file returns 0, unless it was CALLed, in which case it returns errorlevel.
- CALL sets errorlevel to the return value of whatever was called.
- Running a GUI program doesn't change errorlevel, but always returns 0.
- CMD /C uses the command's return value, not errorlevel, as the process exit code.

svn path=/trunk/; revision=40474
reactos/base/shell/cmd/batch.c
reactos/base/shell/cmd/batch.h
reactos/base/shell/cmd/call.c
reactos/base/shell/cmd/cmd.c
reactos/base/shell/cmd/cmd.h
reactos/base/shell/cmd/for.c
reactos/base/shell/cmd/if.c