From 6429bfcd8f8fe1dd6ca836421f723a139f0fea78 Mon Sep 17 00:00:00 2001 From: Amine Khaldi Date: Fri, 8 Dec 2017 23:04:48 +0100 Subject: [PATCH] [CONSRV] Deduplicate GetScreenBufferSizeUnits(), SmallRectToRect() and ConsoleInput. Rename ConsoleList and InsertConsole(). #179 --- win32ss/user/winsrv/consrv/condrv/coninput.c | 9 ----- win32ss/user/winsrv/consrv/condrv/console.c | 10 ++--- win32ss/user/winsrv/consrv/consrv.h | 5 +++ .../user/winsrv/consrv/frontends/gui/conwnd.c | 37 ------------------- .../winsrv/consrv/frontends/gui/guiterm.c | 21 ----------- .../winsrv/consrv/frontends/gui/guiterm.h | 36 ++++++++++++++++++ .../user/winsrv/consrv/frontends/terminal.c | 7 ---- 7 files changed, 46 insertions(+), 79 deletions(-) diff --git a/win32ss/user/winsrv/consrv/condrv/coninput.c b/win32ss/user/winsrv/consrv/condrv/coninput.c index 393c9af3659..e3894d8a54c 100644 --- a/win32ss/user/winsrv/consrv/condrv/coninput.c +++ b/win32ss/user/winsrv/consrv/condrv/coninput.c @@ -14,15 +14,6 @@ #define NDEBUG #include -/* GLOBALS ********************************************************************/ - -typedef struct ConsoleInput_t -{ - LIST_ENTRY ListEntry; - INPUT_RECORD InputEvent; -} ConsoleInput; - - /* PRIVATE FUNCTIONS **********************************************************/ // ConDrvAddInputEvents diff --git a/win32ss/user/winsrv/consrv/condrv/console.c b/win32ss/user/winsrv/consrv/condrv/console.c index df0f4118bf9..d088f317eb4 100644 --- a/win32ss/user/winsrv/consrv/condrv/console.c +++ b/win32ss/user/winsrv/consrv/condrv/console.c @@ -23,7 +23,7 @@ static ULONG CurrentConsoleID = 0; /* Linked list of consoles */ -static LIST_ENTRY ConsoleList; +static LIST_ENTRY ConDrvConsoleList; static RTL_RESOURCE ListLock; #define ConDrvLockConsoleListExclusive() \ @@ -37,7 +37,7 @@ static RTL_RESOURCE ListLock; static NTSTATUS -InsertConsole(IN PCONSOLE Console) +ConDrvInsertConsole(IN PCONSOLE Console) { ASSERT(Console); @@ -45,7 +45,7 @@ InsertConsole(IN PCONSOLE Console) ConDrvLockConsoleListExclusive(); DPRINT("Insert in the list\n"); - InsertTailList(&ConsoleList, &Console->ListEntry); + InsertTailList(&ConDrvConsoleList, &Console->ListEntry); // FIXME: Move this code to the caller function!! /* Get a new console ID */ @@ -152,7 +152,7 @@ ConDrvInitConsoleSupport(VOID) DPRINT("CONSRV: ConDrvInitConsoleSupport()\n"); /* Initialize the console list and its lock */ - InitializeListHead(&ConsoleList); + InitializeListHead(&ConDrvConsoleList); RtlInitializeResource(&ListLock); } @@ -248,7 +248,7 @@ ConDrvInitConsole(OUT PCONSOLE* NewConsole, DPRINT("Console initialized\n"); /* All went right, so add the console to the list */ - Status = InsertConsole(Console); + Status = ConDrvInsertConsole(Console); if (!NT_SUCCESS(Status)) { /* Fail */ diff --git a/win32ss/user/winsrv/consrv/consrv.h b/win32ss/user/winsrv/consrv/consrv.h index c17573e8e04..4ea7d2ee177 100644 --- a/win32ss/user/winsrv/consrv/consrv.h +++ b/win32ss/user/winsrv/consrv/consrv.h @@ -54,6 +54,11 @@ typedef struct _CONSOLE_PROCESS_DATA // LPTHREAD_START_ROUTINE ImeRoutine; } CONSOLE_PROCESS_DATA, *PCONSOLE_PROCESS_DATA; +typedef struct ConsoleInput_t +{ + LIST_ENTRY ListEntry; + INPUT_RECORD InputEvent; +} ConsoleInput; // Helper for code refactoring // #define USE_NEW_CONSOLE_WAY diff --git a/win32ss/user/winsrv/consrv/frontends/gui/conwnd.c b/win32ss/user/winsrv/consrv/frontends/gui/conwnd.c index 60589565991..860244f6c5b 100644 --- a/win32ss/user/winsrv/consrv/frontends/gui/conwnd.c +++ b/win32ss/user/winsrv/consrv/frontends/gui/conwnd.c @@ -20,7 +20,6 @@ #include "font.h" #include "guiterm.h" -#include "conwnd.h" #include "resource.h" /* GLOBALS ********************************************************************/ @@ -172,28 +171,6 @@ UnRegisterConWndClass(HINSTANCE hInstance) return !!UnregisterClassW(GUI_CONWND_CLASS, hInstance); } - -/* NOTE: Also used in guiterm.c */ -/* static */ VOID -GetScreenBufferSizeUnits(IN PCONSOLE_SCREEN_BUFFER Buffer, - IN PGUI_CONSOLE_DATA GuiData, - OUT PUINT WidthUnit, - OUT PUINT HeightUnit) -{ - ASSERT(Buffer && GuiData && WidthUnit && HeightUnit); - - if (GetType(Buffer) == TEXTMODE_BUFFER) - { - *WidthUnit = GuiData->CharWidth ; - *HeightUnit = GuiData->CharHeight; - } - else /* if (GetType(Buffer) == GRAPHICS_BUFFER) */ - { - *WidthUnit = 1; - *HeightUnit = 1; - } -} - static VOID AppendMenuItems(HMENU hMenu, const GUICONSOLE_MENUITEM *Items) @@ -742,20 +719,6 @@ OnFocus(PGUI_CONSOLE_DATA GuiData, BOOL SetFocus) DPRINT("TODO: Destroy console caret\n"); } -static VOID -SmallRectToRect(PGUI_CONSOLE_DATA GuiData, PRECT Rect, PSMALL_RECT SmallRect) -{ - PCONSOLE_SCREEN_BUFFER Buffer = GuiData->ActiveBuffer; - UINT WidthUnit, HeightUnit; - - GetScreenBufferSizeUnits(Buffer, GuiData, &WidthUnit, &HeightUnit); - - Rect->left = (SmallRect->Left - Buffer->ViewOrigin.X) * WidthUnit ; - Rect->top = (SmallRect->Top - Buffer->ViewOrigin.Y) * HeightUnit; - Rect->right = (SmallRect->Right + 1 - Buffer->ViewOrigin.X) * WidthUnit ; - Rect->bottom = (SmallRect->Bottom + 1 - Buffer->ViewOrigin.Y) * HeightUnit; -} - VOID GetSelectionBeginEnd(PCOORD Begin, PCOORD End, PCOORD SelectionAnchor, diff --git a/win32ss/user/winsrv/consrv/frontends/gui/guiterm.c b/win32ss/user/winsrv/consrv/frontends/gui/guiterm.c index 1258b792f85..c3e14d30990 100644 --- a/win32ss/user/winsrv/consrv/frontends/gui/guiterm.c +++ b/win32ss/user/winsrv/consrv/frontends/gui/guiterm.c @@ -56,13 +56,6 @@ UnRegisterConWndClass(HINSTANCE hInstance); /* FUNCTIONS ******************************************************************/ -/* NOTE: Defined in conwnd.c */ -VOID -GetScreenBufferSizeUnits(IN PCONSOLE_SCREEN_BUFFER Buffer, - IN PGUI_CONSOLE_DATA GuiData, - OUT PUINT WidthUnit, - OUT PUINT HeightUnit); - VOID GuiConsoleMoveWindow(PGUI_CONSOLE_DATA GuiData) { @@ -78,20 +71,6 @@ GuiConsoleMoveWindow(PGUI_CONSOLE_DATA GuiData) } } -static VOID -SmallRectToRect(PGUI_CONSOLE_DATA GuiData, PRECT Rect, PSMALL_RECT SmallRect) -{ - PCONSOLE_SCREEN_BUFFER Buffer = GuiData->ActiveBuffer; - UINT WidthUnit, HeightUnit; - - GetScreenBufferSizeUnits(Buffer, GuiData, &WidthUnit, &HeightUnit); - - Rect->left = (SmallRect->Left - Buffer->ViewOrigin.X) * WidthUnit ; - Rect->top = (SmallRect->Top - Buffer->ViewOrigin.Y) * HeightUnit; - Rect->right = (SmallRect->Right + 1 - Buffer->ViewOrigin.X) * WidthUnit ; - Rect->bottom = (SmallRect->Bottom + 1 - Buffer->ViewOrigin.Y) * HeightUnit; -} - static VOID DrawRegion(PGUI_CONSOLE_DATA GuiData, SMALL_RECT* Region) diff --git a/win32ss/user/winsrv/consrv/frontends/gui/guiterm.h b/win32ss/user/winsrv/consrv/frontends/gui/guiterm.h index 3b252afdb37..627237237d8 100644 --- a/win32ss/user/winsrv/consrv/frontends/gui/guiterm.h +++ b/win32ss/user/winsrv/consrv/frontends/gui/guiterm.h @@ -14,6 +14,42 @@ #include "guisettings.h" #include "conwnd.h" +extern inline +VOID +GetScreenBufferSizeUnits(IN PCONSOLE_SCREEN_BUFFER Buffer, + IN PGUI_CONSOLE_DATA GuiData, + OUT PUINT WidthUnit, + OUT PUINT HeightUnit) +{ + ASSERT(Buffer && GuiData && WidthUnit && HeightUnit); + + if (GetType(Buffer) == TEXTMODE_BUFFER) + { + *WidthUnit = GuiData->CharWidth ; + *HeightUnit = GuiData->CharHeight; + } + else /* if (GetType(Buffer) == GRAPHICS_BUFFER) */ + { + *WidthUnit = 1; + *HeightUnit = 1; + } +} + +extern inline +VOID +SmallRectToRect(PGUI_CONSOLE_DATA GuiData, PRECT Rect, PSMALL_RECT SmallRect) +{ + PCONSOLE_SCREEN_BUFFER Buffer = GuiData->ActiveBuffer; + UINT WidthUnit, HeightUnit; + + GetScreenBufferSizeUnits(Buffer, GuiData, &WidthUnit, &HeightUnit); + + Rect->left = (SmallRect->Left - Buffer->ViewOrigin.X) * WidthUnit ; + Rect->top = (SmallRect->Top - Buffer->ViewOrigin.Y) * HeightUnit; + Rect->right = (SmallRect->Right + 1 - Buffer->ViewOrigin.X) * WidthUnit ; + Rect->bottom = (SmallRect->Bottom + 1 - Buffer->ViewOrigin.Y) * HeightUnit; +} + VOID GuiConsoleMoveWindow(PGUI_CONSOLE_DATA GuiData); diff --git a/win32ss/user/winsrv/consrv/frontends/terminal.c b/win32ss/user/winsrv/consrv/frontends/terminal.c index 49f2d1fe3a3..d4f380ba3e8 100644 --- a/win32ss/user/winsrv/consrv/frontends/terminal.c +++ b/win32ss/user/winsrv/consrv/frontends/terminal.c @@ -40,13 +40,6 @@ ASSERT((ULONG_PTR)dWChar != (ULONG_PTR)sChar); \ MultiByteToWideChar((Console)->InputCodePage, 0, (sChar), 1, (dWChar), 1) -typedef struct ConsoleInput_t -{ - LIST_ENTRY ListEntry; - INPUT_RECORD InputEvent; -} ConsoleInput; - - /* PRIVATE FUNCTIONS **********************************************************/ #if 0