From: Eric Pouech epouech@codeweavers.com
Signed-off-by: Eric Pouech epouech@codeweavers.com --- programs/cmd/builtins.c | 7 +++++-- programs/cmd/tests/test_builtins.cmd.exp | 2 +- programs/cmd/wcmd.h | 2 +- programs/cmd/wcmdmain.c | 2 +- 4 files changed, 8 insertions(+), 5 deletions(-)
diff --git a/programs/cmd/builtins.c b/programs/cmd/builtins.c index c8c4dfbaa0b..8cbe9673b33 100644 --- a/programs/cmd/builtins.c +++ b/programs/cmd/builtins.c @@ -249,13 +249,15 @@ static BOOL WCMD_ask_confirm (const WCHAR *message, BOOL showSureText, * Clear the terminal screen. */
-void WCMD_clear_screen (void) { - +RETURN_CODE WCMD_clear_screen(void) +{ /* Emulate by filling the screen from the top left to bottom right with spaces, then moving the cursor to the top left afterwards */ CONSOLE_SCREEN_BUFFER_INFO consoleInfo; HANDLE hStdOut = GetStdHandle(STD_OUTPUT_HANDLE);
+ if (*quals) + return errorlevel = ERROR_INVALID_FUNCTION; if (GetConsoleScreenBufferInfo(hStdOut, &consoleInfo)) { COORD topLeft; @@ -269,6 +271,7 @@ void WCMD_clear_screen (void) { FillConsoleOutputAttribute(hStdOut, consoleInfo.wAttributes, screenSize, topLeft, &written); SetConsoleCursorPosition(hStdOut, topLeft); } + return NO_ERROR; }
/**************************************************************************** diff --git a/programs/cmd/tests/test_builtins.cmd.exp b/programs/cmd/tests/test_builtins.cmd.exp index 3daf9f1b3db..0ca3459f8e0 100644 --- a/programs/cmd/tests/test_builtins.cmd.exp +++ b/programs/cmd/tests/test_builtins.cmd.exp @@ -601,7 +601,7 @@ SUCCESS 0 --- success/failure for CLS command @todo_wine@@formfeed@SUCCESS 666 @todo_wine@@formfeed@SUCCESS 666 -@todo_wine@FAILURE 1 +FAILURE 1 --- success/failure for COLOR command @todo_wine@FAILURE 1 --- success/failure for TITLE command diff --git a/programs/cmd/wcmd.h b/programs/cmd/wcmd.h index f225ad0b9ff..e43a9f4a127 100644 --- a/programs/cmd/wcmd.h +++ b/programs/cmd/wcmd.h @@ -166,7 +166,7 @@ RETURN_CODE WCMD_batch(const WCHAR *, WCHAR *, const WCHAR *, HANDLE); RETURN_CODE WCMD_call(WCHAR *command); void WCMD_change_tty (void); void WCMD_choice (const WCHAR *); -void WCMD_clear_screen (void); +RETURN_CODE WCMD_clear_screen(void); void WCMD_color (void); RETURN_CODE WCMD_copy(WCHAR *); RETURN_CODE WCMD_create_dir(WCHAR *); diff --git a/programs/cmd/wcmdmain.c b/programs/cmd/wcmdmain.c index ed520a05ed6..90747ad8207 100644 --- a/programs/cmd/wcmdmain.c +++ b/programs/cmd/wcmdmain.c @@ -1820,7 +1820,7 @@ static RETURN_CODE execute_single_command(const WCHAR *command) return_code = WCMD_setshow_default(parms_start); break; case WCMD_CLS: - WCMD_clear_screen (); + return_code = WCMD_clear_screen(); break; case WCMD_COPY: return_code = WCMD_copy(parms_start);