https://git.reactos.org/?p=reactos.git;a=commitdiff;h=0d51c71ed7051bc65a976665e8a5040557ac5686

commit 0d51c71ed7051bc65a976665e8a5040557ac5686
Author:     Hervé Poussineau <[email protected]>
AuthorDate: Mon May 13 23:22:20 2019 +0200
Commit:     Hervé Poussineau <[email protected]>
CommitDate: Sun Apr 26 14:57:38 2020 +0200

    [USETUP] Optimize font loading
    
    Reload a new font only if codepage changed.
---
 base/setup/usetup/console.c | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

diff --git a/base/setup/usetup/console.c b/base/setup/usetup/console.c
index 6e647d8bfde..8b56bbe2ef7 100644
--- a/base/setup/usetup/console.c
+++ b/base/setup/usetup/console.c
@@ -40,6 +40,7 @@ static BOOLEAN InputQueueEmpty;
 static BOOLEAN WaitForInput;
 static KEYBOARD_INPUT_DATA InputDataQueue; // Only one element!
 static IO_STATUS_BLOCK InputIosb;
+static UINT LastLoadedCodepage;
 
 /* FUNCTIONS *****************************************************************/
 
@@ -670,6 +671,9 @@ SetConsoleOutputCP(
     IO_STATUS_BLOCK IoStatusBlock;
     NTSTATUS Status;
 
+    if (wCodepage == LastLoadedCodepage)
+        return TRUE;
+
     hConsoleOutput = GetStdHandle(STD_OUTPUT_HANDLE);
 
     Status = NtDeviceIoControlFile(hConsoleOutput,
@@ -682,7 +686,11 @@ SetConsoleOutputCP(
                                    sizeof(ULONG),
                                    NULL,
                                    0);
-    return NT_SUCCESS(Status);
+    if (!NT_SUCCESS(Status))
+          return FALSE;
+
+    LastLoadedCodepage = wCodepage;
+    return TRUE;
 }
 
 

Reply via email to