[CMD]: Continue refactoring to lay out the way to using the CONUTILS library in CMD...
authorHermès Bélusca-Maïto <hermes.belusca-maito@reactos.org>
Sat, 30 Sep 2017 21:05:49 +0000 (21:05 +0000)
committerHermès Bélusca-Maïto <hermes.belusca-maito@reactos.org>
Sat, 30 Sep 2017 21:05:49 +0000 (21:05 +0000)
svn path=/trunk/; revision=76008

reactos/base/shell/cmd/cmd.c
reactos/base/shell/cmd/color.c
reactos/base/shell/cmd/console.c
reactos/base/shell/cmd/console.h
reactos/base/shell/cmd/dir.c
reactos/base/shell/cmd/type.c

index 8811986..bc608f8 100644 (file)
@@ -1956,7 +1956,7 @@ Initialize(VOID)
     }
 
     if (wDefColor != 0)
-        ConSetScreenColor(wDefColor, TRUE);
+        ConSetScreenColor(GetStdHandle(STD_OUTPUT_HANDLE), wDefColor, TRUE);
 #endif
 
     if (!*ptr)
index b8ce749..5ac01c2 100644 (file)
@@ -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);
index 06892fc..b83686f 100644 (file)
@@ -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
index 189a6f2..69ef9d3 100644 (file)
@@ -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);
index 78f80c4..093ae8b 100644 (file)
@@ -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;
     }
 
index e449cbf..2c8955d 100644 (file)
@@ -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);