diff --git a/reactos/base/shell/cmd/cmd.c b/reactos/base/shell/cmd/cmd.c index 8811986b212..bc608f8cce4 100644 --- a/reactos/base/shell/cmd/cmd.c +++ b/reactos/base/shell/cmd/cmd.c @@ -1956,7 +1956,7 @@ Initialize(VOID) } if (wDefColor != 0) - ConSetScreenColor(wDefColor, TRUE); + ConSetScreenColor(GetStdHandle(STD_OUTPUT_HANDLE), wDefColor, TRUE); #endif if (!*ptr) diff --git a/reactos/base/shell/cmd/color.c b/reactos/base/shell/cmd/color.c index b8ce74952cd..5ac01c25f98 100644 --- a/reactos/base/shell/cmd/color.c +++ b/reactos/base/shell/cmd/color.c @@ -46,7 +46,7 @@ INT CommandColor(LPTSTR rest) /* No parameter: Set the default colors */ if (rest[0] == _T('\0')) { - ConSetScreenColor(wDefColor, TRUE); + ConSetScreenColor(GetStdHandle(STD_OUTPUT_HANDLE), wDefColor, TRUE); return 0; } @@ -87,7 +87,8 @@ INT CommandColor(LPTSTR rest) * Set the chosen color. Use also the following advanced flag: * /-F to avoid changing already buffered foreground/background. */ - if (ConSetScreenColor(wColor, !_tcsstr(rest, _T("/-F")) && !_tcsstr(rest, _T("/-f"))) == FALSE) + if (ConSetScreenColor(GetStdHandle(STD_OUTPUT_HANDLE), wColor, + !_tcsstr(rest, _T("/-F")) && !_tcsstr(rest, _T("/-f"))) == FALSE) { /* Failed because foreground and background colors were the same */ ConErrResPuts(STRING_COLOR_ERROR1); diff --git a/reactos/base/shell/cmd/console.c b/reactos/base/shell/cmd/console.c index 06892fc808a..b83686f8342 100644 --- a/reactos/base/shell/cmd/console.c +++ b/reactos/base/shell/cmd/console.c @@ -21,7 +21,7 @@ #define OUTPUT_BUFFER_SIZE 4096 - +/* Cache codepage for text streams */ UINT InputCodePage; UINT OutputCodePage; @@ -342,7 +342,7 @@ VOID ConFormatMessage(DWORD nStdHandle, DWORD MessageId, ...) /************************** Console PAGER functions ***************************/ -INT ConPrintfVPaging(DWORD nStdHandle, BOOL NewPage, LPTSTR szFormat, va_list arg_ptr) +BOOL ConPrintfVPaging(DWORD nStdHandle, BOOL NewPage, LPTSTR szFormat, va_list arg_ptr) { INT len; CONSOLE_SCREEN_BUFFER_INFO csbi; @@ -366,14 +366,14 @@ INT ConPrintfVPaging(DWORD nStdHandle, BOOL NewPage, LPTSTR szFormat, va_list ar /* Reset LineCount and return if no string has been given */ if (szFormat == NULL) - return 0; + return TRUE; /* Get the size of the visual screen that can be printed to */ if (!IsConsoleHandle(hOutput) || !GetConsoleScreenBufferInfo(hOutput, &csbi)) { /* We assume it's a file handle */ ConPrintfV(nStdHandle, szFormat, arg_ptr); - return 0; + return TRUE; } /* @@ -387,7 +387,7 @@ INT ConPrintfVPaging(DWORD nStdHandle, BOOL NewPage, LPTSTR szFormat, va_list ar if (ScreenLines < 4) { ConPrintfV(nStdHandle, szFormat, arg_ptr); - return 0; + return TRUE; } len = _vstprintf(szOut, szFormat, arg_ptr); @@ -408,9 +408,7 @@ INT ConPrintfVPaging(DWORD nStdHandle, BOOL NewPage, LPTSTR szFormat, va_list ar /* Prompt the user */ if (PagePrompt() != PROMPT_YES) - { - return 1; - } + return FALSE; // TODO: Recalculate 'ScreenLines' in case the user redimensions // the window during the prompt. @@ -422,18 +420,18 @@ INT ConPrintfVPaging(DWORD nStdHandle, BOOL NewPage, LPTSTR szFormat, va_list ar WriteConsole(hOutput, &szOut[from], i-from, &dwWritten, NULL); - return 0; + return TRUE; } -INT ConOutPrintfPaging(BOOL NewPage, LPTSTR szFormat, ...) +BOOL ConOutPrintfPaging(BOOL NewPage, LPTSTR szFormat, ...) { - INT iReturn; + BOOL bRet; va_list arg_ptr; va_start(arg_ptr, szFormat); - iReturn = ConPrintfVPaging(STD_OUTPUT_HANDLE, NewPage, szFormat, arg_ptr); + bRet = ConPrintfVPaging(STD_OUTPUT_HANDLE, NewPage, szFormat, arg_ptr); va_end(arg_ptr); - return iReturn; + return bRet; } VOID ConOutResPaging(BOOL NewPage, UINT resID) @@ -557,9 +555,8 @@ VOID ConClearScreen(HANDLE hOutput) #endif #ifdef INCLUDE_CMD_COLOR -BOOL ConSetScreenColor(WORD wColor, BOOL bFill) +BOOL ConSetScreenColor(HANDLE hOutput, WORD wColor, BOOL bFill) { - HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE); DWORD dwWritten; CONSOLE_SCREEN_BUFFER_INFO csbi; COORD coPos; @@ -571,11 +568,11 @@ BOOL ConSetScreenColor(WORD wColor, BOOL bFill) /* Fill the whole background if needed */ if (bFill) { - GetConsoleScreenBufferInfo(hConsole, &csbi); + GetConsoleScreenBufferInfo(hOutput, &csbi); coPos.X = 0; coPos.Y = 0; - FillConsoleOutputAttribute(hConsole, + FillConsoleOutputAttribute(hOutput, wColor & 0x00FF, csbi.dwSize.X * csbi.dwSize.Y, coPos, @@ -583,7 +580,7 @@ BOOL ConSetScreenColor(WORD wColor, BOOL bFill) } /* Set the text attribute */ - SetConsoleTextAttribute(hConsole, wColor & 0x00FF); + SetConsoleTextAttribute(hOutput, wColor & 0x00FF); return TRUE; } #endif diff --git a/reactos/base/shell/cmd/console.h b/reactos/base/shell/cmd/console.h index 189a6f22ac5..69ef9d32d0d 100644 --- a/reactos/base/shell/cmd/console.h +++ b/reactos/base/shell/cmd/console.h @@ -59,8 +59,8 @@ VOID ConFormatMessage(DWORD nStdHandle, DWORD MessageId, ...); ConFormatMessage(STD_ERROR_HANDLE, (MessageId), ##__VA_ARGS__) -INT ConPrintfVPaging(DWORD nStdHandle, BOOL, LPTSTR, va_list); -INT ConOutPrintfPaging (BOOL NewPage, LPTSTR, ...); +BOOL ConPrintfVPaging(DWORD nStdHandle, BOOL, LPTSTR, va_list); +BOOL ConOutPrintfPaging (BOOL NewPage, LPTSTR, ...); VOID ConOutResPaging(BOOL NewPage, UINT resID); SHORT GetCursorX (VOID); @@ -83,7 +83,7 @@ VOID ConClearScreen(HANDLE hOutput); #endif #ifdef INCLUDE_CMD_COLOR -BOOL ConSetScreenColor(WORD wColor, BOOL bFill); +BOOL ConSetScreenColor(HANDLE hOutput, WORD wColor, BOOL bFill); #endif // TCHAR cgetchar (VOID); diff --git a/reactos/base/shell/cmd/dir.c b/reactos/base/shell/cmd/dir.c index 78f80c4f7b0..093ae8b97d1 100644 --- a/reactos/base/shell/cmd/dir.c +++ b/reactos/base/shell/cmd/dir.c @@ -550,18 +550,18 @@ DirReadParam(LPTSTR Line, /* [IN] The line with the parameters & s } /* Print either with or without paging, depending on /P switch */ -static INT +static BOOL DirPrintf(LPDIRSWITCHFLAGS lpFlags, LPTSTR szFormat, ...) { - INT iReturn = 0; + BOOL Done = TRUE; va_list arg_ptr; va_start(arg_ptr, szFormat); if (lpFlags->bPause) - iReturn = ConPrintfVPaging(STD_OUTPUT_HANDLE, FALSE, szFormat, arg_ptr); + Done = ConPrintfVPaging(STD_OUTPUT_HANDLE, FALSE, szFormat, arg_ptr); else ConPrintfV(STD_OUTPUT_HANDLE, szFormat, arg_ptr); va_end(arg_ptr); - return iReturn; + return Done; } @@ -1139,7 +1139,7 @@ DirPrintFiles(PDIRFINDINFO ptrFiles[], /* [IN] Files' Info */ if (!lpFlags->bBareFormat && !(lpFlags->bRecursive && (dwCount <= 0))) { LoadString(CMD_ModuleHandle, STRING_DIR_HELP7, szMsg, ARRAYSIZE(szMsg)); - if (DirPrintf(lpFlags, szMsg, szTemp)) + if (!DirPrintf(lpFlags, szMsg, szTemp)) return; } diff --git a/reactos/base/shell/cmd/type.c b/reactos/base/shell/cmd/type.c index e449cbff35b..2c8955d8695 100644 --- a/reactos/base/shell/cmd/type.c +++ b/reactos/base/shell/cmd/type.c @@ -107,7 +107,7 @@ INT cmd_type(LPTSTR param) { while (FileGetString(hFile, buff, ARRAYSIZE(buff))) { - if (ConOutPrintfPaging(bFirstTime, _T("%s"), buff) == 1) + if (!ConOutPrintfPaging(bFirstTime, _T("%s"), buff)) { bCtrlBreak = FALSE; CloseHandle(hFile);