From: Eric Pouech epouech@codeweavers.com
Signed-off-by: Eric Pouech epouech@codeweavers.com --- programs/cmd/builtins.c | 35 +++++++++++------------- programs/cmd/tests/test_builtins.cmd.exp | 6 ++-- programs/cmd/wcmd.h | 2 +- programs/cmd/wcmdmain.c | 2 +- 4 files changed, 21 insertions(+), 24 deletions(-)
diff --git a/programs/cmd/builtins.c b/programs/cmd/builtins.c index e2c64221bb2..2f6e34f6172 100644 --- a/programs/cmd/builtins.c +++ b/programs/cmd/builtins.c @@ -3697,25 +3697,22 @@ void WCMD_more (WCHAR *args) { * it... */
-void WCMD_verify (const WCHAR *args) { - - int count; - - count = lstrlenW(args); - if (count == 0) { - if (verify_mode) WCMD_output(WCMD_LoadMessage(WCMD_VERIFYPROMPT), L"ON"); - else WCMD_output (WCMD_LoadMessage(WCMD_VERIFYPROMPT), L"OFF"); - return; - } - if (lstrcmpiW(args, L"ON") == 0) { - verify_mode = TRUE; - return; - } - else if (lstrcmpiW(args, L"OFF") == 0) { - verify_mode = FALSE; - return; - } - else WCMD_output_stderr(WCMD_LoadMessage(WCMD_VERIFYERR)); +RETURN_CODE WCMD_verify(void) +{ + RETURN_CODE return_code = NO_ERROR; + + if (!param1[0]) + WCMD_output(WCMD_LoadMessage(WCMD_VERIFYPROMPT), verify_mode ? L"ON" : L"OFF"); + else if (lstrcmpiW(param1, L"ON") == 0) + verify_mode = TRUE; + else if (lstrcmpiW(param1, L"OFF") == 0) + verify_mode = FALSE; + else + { + WCMD_output_stderr(WCMD_LoadMessage(WCMD_VERIFYERR)); + return_code = ERROR_INVALID_FUNCTION; + } + return errorlevel = return_code; }
/**************************************************************************** diff --git a/programs/cmd/tests/test_builtins.cmd.exp b/programs/cmd/tests/test_builtins.cmd.exp index fc968a6d0a0..2b6f735c4ba 100644 --- a/programs/cmd/tests/test_builtins.cmd.exp +++ b/programs/cmd/tests/test_builtins.cmd.exp @@ -555,9 +555,9 @@ SUCCESS 0 SUCCESS 0 FAILURE 1 --- success/failure for VERIFY command -@todo_wine@SUCCESS 0 -@todo_wine@SUCCESS 0 -@todo_wine@FAILURE 1 +SUCCESS 0 +SUCCESS 0 +FAILURE 1 --- success/failure for VOL command @todo_wine@SUCCESS 0 @todo_wine@SUCCESS 0 diff --git a/programs/cmd/wcmd.h b/programs/cmd/wcmd.h index 62c07af021f..60504cdc3fe 100644 --- a/programs/cmd/wcmd.h +++ b/programs/cmd/wcmd.h @@ -203,7 +203,7 @@ void WCMD_shift (const WCHAR *args); void WCMD_start (WCHAR *args); void WCMD_title (const WCHAR *); RETURN_CODE WCMD_type(WCHAR *); -void WCMD_verify (const WCHAR *args); +RETURN_CODE WCMD_verify(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 817400aec0e..7ede9ae09ab 100644 --- a/programs/cmd/wcmdmain.c +++ b/programs/cmd/wcmdmain.c @@ -1906,7 +1906,7 @@ static RETURN_CODE execute_single_command(const WCHAR *command) return_code = WCMD_version(); break; case WCMD_VERIFY: - WCMD_verify (parms_start); + return_code = WCMD_verify(); break; case WCMD_VOL: WCMD_volume (FALSE, parms_start);