From: Eric Pouech epouech@codeweavers.com
Signed-off-by: Eric Pouech epouech@codeweavers.com --- programs/cmd/builtins.c | 18 +++++++++++++++--- programs/cmd/tests/test_builtins.cmd.exp | 6 +++--- programs/cmd/wcmd.h | 2 +- programs/cmd/wcmdmain.c | 5 ++--- 4 files changed, 21 insertions(+), 10 deletions(-)
diff --git a/programs/cmd/builtins.c b/programs/cmd/builtins.c index 843274b7969..e2c64221bb2 100644 --- a/programs/cmd/builtins.c +++ b/programs/cmd/builtins.c @@ -3724,10 +3724,22 @@ void WCMD_verify (const WCHAR *args) { * Display version info. */
-void WCMD_version (void) { - - WCMD_output_asis (version_string); +RETURN_CODE WCMD_version(void) +{ + RETURN_CODE return_code;
+ WCMD_output_asis(L"\r\n"); + if (*quals) + { + WCMD_output_stderr(WCMD_LoadMessage(WCMD_SYNTAXERR)); + return_code = ERROR_INVALID_FUNCTION; + } + else + { + WCMD_output_asis(version_string); + return_code = NO_ERROR; + } + return errorlevel = return_code; }
/**************************************************************************** diff --git a/programs/cmd/tests/test_builtins.cmd.exp b/programs/cmd/tests/test_builtins.cmd.exp index 4d84079f6d4..fc968a6d0a0 100644 --- a/programs/cmd/tests/test_builtins.cmd.exp +++ b/programs/cmd/tests/test_builtins.cmd.exp @@ -551,9 +551,9 @@ FAILURE 1 @todo_wine@SUCCESS 666 @todo_wine@SUCCESS 666 --- success/failure for VER command -@todo_wine@SUCCESS 0 -@todo_wine@SUCCESS 0 -@todo_wine@FAILURE 1 +SUCCESS 0 +SUCCESS 0 +FAILURE 1 --- success/failure for VERIFY command @todo_wine@SUCCESS 0 @todo_wine@SUCCESS 0 diff --git a/programs/cmd/wcmd.h b/programs/cmd/wcmd.h index edcd6dce56e..62c07af021f 100644 --- a/programs/cmd/wcmd.h +++ b/programs/cmd/wcmd.h @@ -204,7 +204,7 @@ void WCMD_start (WCHAR *args); void WCMD_title (const WCHAR *); RETURN_CODE WCMD_type(WCHAR *); void WCMD_verify (const WCHAR *args); -void WCMD_version (void); +RETURN_CODE WCMD_version(void); int WCMD_volume (BOOL set_label, const WCHAR *args); void WCMD_mklink(WCHAR *args);
diff --git a/programs/cmd/wcmdmain.c b/programs/cmd/wcmdmain.c index 84692121d8b..817400aec0e 100644 --- a/programs/cmd/wcmdmain.c +++ b/programs/cmd/wcmdmain.c @@ -1903,8 +1903,7 @@ static RETURN_CODE execute_single_command(const WCHAR *command) return_code = WCMD_type(parms_start); break; case WCMD_VER: - WCMD_output_asis(L"\r\n"); - WCMD_version (); + return_code = WCMD_version(); break; case WCMD_VERIFY: WCMD_verify (parms_start); @@ -4181,7 +4180,7 @@ int __cdecl wmain (int argc, WCHAR *argvW[]) */
interactive = TRUE; - if (!opt_k) WCMD_version (); + if (!opt_k) WCMD_output_asis(version_string); if (echo_mode) WCMD_output_asis(L"\r\n"); /* Read until EOF (which for std input is never, but if redirect in place, may occur */ while ((rpl_status = WCMD_ReadAndParseLine(NULL, &toExecute, GetStdHandle(STD_INPUT_HANDLE))) != RPL_EOF)