Author: hbelusca
Date: Sun Sep  3 19:46:26 2017
New Revision: 75753

URL: http://svn.reactos.org/svn/reactos?rev=75753&view=rev
Log:
[SETUPLIB][USETUP]: Make the GENERIC_LIST store the items display text in 
UNICODE (and not in ANSI). Only convert to ANSI when needed (e.g. in the 
display code for usetup).
The 1st-stage GUI setup will however use the UNICODE strings directly.

Modified:
    branches/setup_improvements/base/setup/lib/settings.c
    branches/setup_improvements/base/setup/lib/utils/genlist.c
    branches/setup_improvements/base/setup/lib/utils/genlist.h
    branches/setup_improvements/base/setup/lib/utils/osdetect.c
    branches/setup_improvements/base/setup/usetup/genlist.c
    branches/setup_improvements/base/setup/usetup/genlist.h
    branches/setup_improvements/base/setup/usetup/usetup.c

Modified: branches/setup_improvements/base/setup/lib/settings.c
URL: 
http://svn.reactos.org/svn/reactos/branches/setup_improvements/base/setup/lib/settings.c?rev=75753&r1=75752&r2=75753&view=diff
==============================================================================
--- branches/setup_improvements/base/setup/lib/settings.c       [iso-8859-1] 
(original)
+++ branches/setup_improvements/base/setup/lib/settings.c       [iso-8859-1] 
Sun Sep  3 19:46:26 2017
@@ -324,7 +324,7 @@
 (NTAPI *PPROCESS_ENTRY_ROUTINE)(
     IN PWCHAR KeyName,
     IN PWCHAR KeyValue,
-    IN PCHAR DisplayText,
+    OUT PWCHAR DisplayText,
     IN SIZE_T DisplayTextSize,
     OUT PVOID* UserData,
     OUT PBOOLEAN Current,
@@ -345,7 +345,7 @@
     PVOID UserData;
     BOOLEAN Current;
     UCHAR RetVal;
-    CHAR DisplayText[128];
+    WCHAR DisplayText[128];
 
     if (!SetupFindFirstLineW(InfFile, SectionName, NULL, pContext))
         return -1;
@@ -405,7 +405,7 @@
 DefaultProcessEntry(
     IN PWCHAR KeyName,
     IN PWCHAR KeyValue,
-    IN PCHAR DisplayText,
+    OUT PWCHAR DisplayText,
     IN SIZE_T DisplayTextSize,
     OUT PVOID* UserData,
     OUT PBOOLEAN Current,
@@ -423,7 +423,7 @@
     }
 
     wcscpy((PWCHAR)*UserData, KeyName);
-    sprintf(DisplayText, "%S", KeyValue);
+    wcscpy(DisplayText, KeyValue);
 
     *Current = (CompareKey ? !_wcsicmp(KeyName, CompareKey) : FALSE);
 
@@ -740,7 +740,7 @@
     }
 
 #if 0
-    AppendGenericListEntry(List, "Other display driver", NULL, TRUE);
+    AppendGenericListEntry(List, L"Other display driver", NULL, TRUE);
 #endif
 
     return List;
@@ -1087,7 +1087,7 @@
 ProcessLangEntry(
     IN PWCHAR KeyName,
     IN PWCHAR KeyValue,
-    IN PCHAR DisplayText,
+    OUT PWCHAR DisplayText,
     IN SIZE_T DisplayTextSize,
     OUT PVOID* UserData,
     OUT PBOOLEAN Current,
@@ -1111,7 +1111,7 @@
     }
 
     wcscpy((PWCHAR)*UserData, KeyName);
-    sprintf(DisplayText, "%S", KeyValue);
+    wcscpy(DisplayText, KeyValue);
 
     *Current = FALSE;
 

Modified: branches/setup_improvements/base/setup/lib/utils/genlist.c
URL: 
http://svn.reactos.org/svn/reactos/branches/setup_improvements/base/setup/lib/utils/genlist.c?rev=75753&r1=75752&r2=75753&view=diff
==============================================================================
--- branches/setup_improvements/base/setup/lib/utils/genlist.c  [iso-8859-1] 
(original)
+++ branches/setup_improvements/base/setup/lib/utils/genlist.c  [iso-8859-1] 
Sun Sep  3 19:46:26 2017
@@ -67,7 +67,7 @@
 BOOLEAN
 AppendGenericListEntry(
     IN OUT PGENERIC_LIST List,
-    IN PCHAR Text,
+    IN PCWSTR Text,
     IN PVOID UserData,
     IN BOOLEAN Current)
 {
@@ -75,11 +75,12 @@
 
     Entry = (PGENERIC_LIST_ENTRY)RtlAllocateHeap(ProcessHeap,
                                                  0,
-                                                 sizeof(GENERIC_LIST_ENTRY) + 
strlen(Text));
+                                                 sizeof(GENERIC_LIST_ENTRY) +
+                                                    (wcslen(Text) + 1) * 
sizeof(WCHAR));
     if (Entry == NULL)
         return FALSE;
 
-    strcpy (Entry->Text, Text);
+    wcscpy(Entry->Text, Text);
     Entry->List = List;
     Entry->UserData = UserData;
 
@@ -140,7 +141,7 @@
     return Entry->UserData;
 }
 
-LPCSTR
+PCWSTR
 GetListEntryText(
     IN PGENERIC_LIST_ENTRY Entry)
 {

Modified: branches/setup_improvements/base/setup/lib/utils/genlist.h
URL: 
http://svn.reactos.org/svn/reactos/branches/setup_improvements/base/setup/lib/utils/genlist.h?rev=75753&r1=75752&r2=75753&view=diff
==============================================================================
--- branches/setup_improvements/base/setup/lib/utils/genlist.h  [iso-8859-1] 
(original)
+++ branches/setup_improvements/base/setup/lib/utils/genlist.h  [iso-8859-1] 
Sun Sep  3 19:46:26 2017
@@ -13,7 +13,7 @@
     LIST_ENTRY Entry;
     struct _GENERIC_LIST* List;
     PVOID UserData;
-    CHAR Text[1];       // FIXME: UI stuff
+    WCHAR Text[1];      // FIXME: UI stuff
 
 } GENERIC_LIST_ENTRY, *PGENERIC_LIST_ENTRY;
 
@@ -39,7 +39,7 @@
 BOOLEAN
 AppendGenericListEntry(
     IN OUT PGENERIC_LIST List,
-    IN PCHAR Text,
+    IN PCWSTR Text,
     IN PVOID UserData,
     IN BOOLEAN Current);
 
@@ -64,7 +64,7 @@
 GetListEntryUserData(
     IN PGENERIC_LIST_ENTRY Entry);
 
-LPCSTR
+PCWSTR
 GetListEntryText(
     IN PGENERIC_LIST_ENTRY Entry);
 

Modified: branches/setup_improvements/base/setup/lib/utils/osdetect.c
URL: 
http://svn.reactos.org/svn/reactos/branches/setup_improvements/base/setup/lib/utils/osdetect.c?rev=75753&r1=75752&r2=75753&view=diff
==============================================================================
--- branches/setup_improvements/base/setup/lib/utils/osdetect.c [iso-8859-1] 
(original)
+++ branches/setup_improvements/base/setup/lib/utils/osdetect.c [iso-8859-1] 
Sun Sep  3 19:46:26 2017
@@ -571,7 +571,6 @@
 {
     PNTOS_INSTALLATION NtOsInstall;
     SIZE_T ArcPathLength, NtPathLength;
-    CHAR InstallNameA[MAX_PATH];
 
     /* Is there already any installation with these settings? */
     NtOsInstall = FindExistingNTOSInstall(List, SystemRootArcPath, 
SystemRootNtPath);
@@ -617,8 +616,7 @@
     StringCchCopyW(NtOsInstall->InstallationName, 
ARRAYSIZE(NtOsInstall->InstallationName), InstallationName);
 
     // Having the GENERIC_LIST storing the display item string plainly sucks...
-    StringCchPrintfA(InstallNameA, ARRAYSIZE(InstallNameA), "%S", 
InstallationName);
-    AppendGenericListEntry(List, InstallNameA, NtOsInstall, FALSE);
+    AppendGenericListEntry(List, InstallationName, NtOsInstall, FALSE);
 
     return NtOsInstall;
 }

Modified: branches/setup_improvements/base/setup/usetup/genlist.c
URL: 
http://svn.reactos.org/svn/reactos/branches/setup_improvements/base/setup/usetup/genlist.c?rev=75753&r1=75752&r2=75753&view=diff
==============================================================================
--- branches/setup_improvements/base/setup/usetup/genlist.c     [iso-8859-1] 
(original)
+++ branches/setup_improvements/base/setup/usetup/genlist.c     [iso-8859-1] 
Sun Sep  3 19:46:26 2017
@@ -48,6 +48,8 @@
     ListUi->Right = 0;
     ListUi->Bottom = 0;
     ListUi->Redraw = TRUE;
+
+    ListUi->CurrentItemText[0] = ANSI_NULL;
 }
 
 static
@@ -158,6 +160,8 @@
             break;
         ListUi->LastShown = Entry;
 
+        sprintf(ListUi->CurrentItemText, "%S", ListEntry->Text);
+
         FillConsoleOutputAttribute(StdOutput,
                                    (List->CurrentEntry == ListEntry) ?
                                    FOREGROUND_BLUE | BACKGROUND_WHITE :
@@ -174,8 +178,8 @@
 
         coPos.X++;
         WriteConsoleOutputCharacterA(StdOutput,
-                                     ListEntry->Text,
-                                     min(strlen(ListEntry->Text), 
(SIZE_T)Width - 2),
+                                     ListUi->CurrentItemText,
+                                     min(strlen(ListUi->CurrentItemText), 
(SIZE_T)Width - 2),
                                      coPos,
                                      &Written);
         coPos.X--;
@@ -415,7 +419,7 @@
 
     for (i = ListUi->Bottom - 1; i > ListUi->Top + 1; i--)
     {
-         ScrollUpGenericList(ListUi);
+        ScrollUpGenericList(ListUi);
     }
 
     /* Update user interface */
@@ -490,13 +494,17 @@
 
     ListUi->Redraw = FALSE;
 
-    if ((strlen(ListEntry->Text) > 0) && (tolower(ListEntry->Text[0]) == 
AsciiChar) &&
+    sprintf(ListUi->CurrentItemText, "%S", ListEntry->Text);
+
+    if ((strlen(ListUi->CurrentItemText) > 0) && 
(tolower(ListUi->CurrentItemText[0]) == AsciiChar) &&
          (List->CurrentEntry->Entry.Flink != &List->ListHead))
     {
         ScrollDownGenericList(ListUi);
         ListEntry = List->CurrentEntry;
 
-        if ((strlen(ListEntry->Text) > 0) && (tolower(ListEntry->Text[0]) == 
AsciiChar))
+        sprintf(ListUi->CurrentItemText, "%S", ListEntry->Text);
+
+        if ((strlen(ListUi->CurrentItemText) > 0) && 
(tolower(ListUi->CurrentItemText[0]) == AsciiChar))
             goto End;
     }
 
@@ -507,7 +515,9 @@
 
     for (;;)
     {
-        if ((strlen(ListEntry->Text) > 0) && (tolower(ListEntry->Text[0]) == 
AsciiChar))
+        sprintf(ListUi->CurrentItemText, "%S", ListEntry->Text);
+
+        if ((strlen(ListUi->CurrentItemText) > 0) && 
(tolower(ListUi->CurrentItemText[0]) == AsciiChar))
         {
             Flag = TRUE;
             break;

Modified: branches/setup_improvements/base/setup/usetup/genlist.h
URL: 
http://svn.reactos.org/svn/reactos/branches/setup_improvements/base/setup/usetup/genlist.h?rev=75753&r1=75752&r2=75753&view=diff
==============================================================================
--- branches/setup_improvements/base/setup/usetup/genlist.h     [iso-8859-1] 
(original)
+++ branches/setup_improvements/base/setup/usetup/genlist.h     [iso-8859-1] 
Sun Sep  3 19:46:26 2017
@@ -40,6 +40,9 @@
     SHORT Right;
     SHORT Bottom;
     BOOL Redraw;
+
+    CHAR CurrentItemText[256];
+
 } GENERIC_LIST_UI, *PGENERIC_LIST_UI;
 
 VOID

Modified: branches/setup_improvements/base/setup/usetup/usetup.c
URL: 
http://svn.reactos.org/svn/reactos/branches/setup_improvements/base/setup/usetup/usetup.c?rev=75753&r1=75752&r2=75753&view=diff
==============================================================================
--- branches/setup_improvements/base/setup/usetup/usetup.c      [iso-8859-1] 
(original)
+++ branches/setup_improvements/base/setup/usetup/usetup.c      [iso-8859-1] 
Sun Sep  3 19:46:26 2017
@@ -1045,6 +1045,7 @@
 DeviceSettingsPage(PINPUT_RECORD Ir)
 {
     static ULONG Line = 16;
+    CHAR CurrentItemText[256];
 
     /* Initialize the computer settings list */
     if (ComputerList == NULL)
@@ -1099,10 +1100,14 @@
 
     MUIDisplayPage(DEVICE_SETTINGS_PAGE);
 
-    CONSOLE_SetTextXY(25, 11, 
GetListEntryText(GetCurrentListEntry(ComputerList)));
-    CONSOLE_SetTextXY(25, 12, 
GetListEntryText(GetCurrentListEntry(DisplayList)));
-    CONSOLE_SetTextXY(25, 13, 
GetListEntryText(GetCurrentListEntry(KeyboardList)));
-    CONSOLE_SetTextXY(25, 14, 
GetListEntryText(GetCurrentListEntry(LayoutList)));
+    sprintf(CurrentItemText, "%S", 
GetListEntryText(GetCurrentListEntry(ComputerList)));
+    CONSOLE_SetTextXY(25, 11, CurrentItemText);
+    sprintf(CurrentItemText, "%S", 
GetListEntryText(GetCurrentListEntry(DisplayList)));
+    CONSOLE_SetTextXY(25, 12, CurrentItemText);
+    sprintf(CurrentItemText, "%S", 
GetListEntryText(GetCurrentListEntry(KeyboardList)));
+    CONSOLE_SetTextXY(25, 13, CurrentItemText);
+    sprintf(CurrentItemText, "%S", 
GetListEntryText(GetCurrentListEntry(LayoutList)));
+    CONSOLE_SetTextXY(25, 14, CurrentItemText);
 
     CONSOLE_InvertTextXY(24, Line, 48, 1);
 


Reply via email to