*/
#include "usetup.h"
-#include "interface/consup.h"
-#include "errorcode.h"
-#include "mui.h"
#include "muifonts.h"
#include "muilanguages.h"
IN PINPUT_RECORD Ir,
IN ULONG WaitEvent);
-static
+static
ULONG
-FindLanguageIndex()
+FindLanguageIndex(VOID)
{
ULONG lngIndex = 0;
}
+BOOLEAN
+IsLanguageAvailable(
+ PWCHAR LanguageId)
+{
+ ULONG lngIndex = 0;
+
+ do
+ {
+ if (_wcsicmp(LanguageList[lngIndex].LanguageID , LanguageId) == 0)
+ return TRUE;
+
+ lngIndex++;
+ }while (LanguageList[lngIndex].MuiPages != NULL);
+
+ return FALSE;
+}
+
+
static
const MUI_ENTRY *
-FindMUIEntriesOfPage(IN ULONG PageNumber)
+FindMUIEntriesOfPage(
+ IN ULONG PageNumber)
{
ULONG muiIndex = 0;
ULONG lngIndex;
return NULL;
}
+
static
const MUI_ERROR *
FindMUIErrorEntries(VOID)
return LanguageList[lngIndex].MuiErrors;
}
+
static
const MUI_STRING *
FindMUIStringEntries(VOID)
return LanguageList[lngIndex].MuiStrings;
}
+
LPCWSTR
MUIDefaultKeyboardLayout(VOID)
{
return LanguageList[lngIndex].MuiLayouts[0].LayoutID;
}
+
PWCHAR
MUIGetGeoID(VOID)
{
return LanguageList[lngIndex].GeoID;
}
+
const MUI_LAYOUTS *
MUIGetLayoutsList(VOID)
{
return LanguageList[lngIndex].MuiLayouts;
}
+
VOID
-MUIDisplayPage(IN ULONG page)
+MUIClearPage(
+ IN ULONG page)
{
const MUI_ENTRY * entry;
int index;
index = 0;
do
{
- CONSOLE_SetStyledText (
- entry[index].X,
- entry[index].Y,
- entry[index].Flags,
- entry[index].Buffer);
+ CONSOLE_ClearStyledText(entry[index].X,
+ entry[index].Y,
+ entry[index].Flags,
+ strlen(entry[index].Buffer));
+ index++;
+ }
+ while (entry[index].Buffer != NULL);
+}
+
+
+VOID
+MUIDisplayPage(
+ IN ULONG page)
+{
+ const MUI_ENTRY * entry;
+ int index;
+
+ entry = FindMUIEntriesOfPage(page);
+ if (!entry)
+ {
+ PopupError("Error: Failed to find translated page",
+ NULL,
+ NULL,
+ POPUP_WAIT_NONE);
+ return;
+ }
+
+ index = 0;
+ do
+ {
+ CONSOLE_SetStyledText(entry[index].X,
+ entry[index].Y,
+ entry[index].Flags,
+ entry[index].Buffer);
index++;
}
while (entry[index].Buffer != NULL);
}
+
VOID
-MUIDisplayError(IN ULONG ErrorNum, OUT PINPUT_RECORD Ir, IN ULONG WaitEvent)
+MUIDisplayError(
+ IN ULONG ErrorNum,
+ OUT PINPUT_RECORD Ir,
+ IN ULONG WaitEvent)
{
const MUI_ERROR * entry;
WaitEvent);
}
+
LPSTR
-MUIGetString(ULONG Number)
+MUIGetString(
+ ULONG Number)
{
ULONG i;
const MUI_STRING * entry;
sprintf(szErr, "Error: failed find string id %lu for language index %lu\n", Number, FindLanguageIndex());
PopupError(szErr,
- NULL,
- NULL,
- POPUP_WAIT_NONE);
+ NULL,
+ NULL,
+ POPUP_WAIT_NONE);
return "<nostring>";
}
-static BOOLEAN
-AddHotkeySettings(IN LPCWSTR Hotkey, IN LPCWSTR LangHotkey, IN LPCWSTR LayoutHotkey)
+
+static
+BOOLEAN
+AddHotkeySettings(
+ IN LPCWSTR Hotkey,
+ IN LPCWSTR LangHotkey,
+ IN LPCWSTR LayoutHotkey)
{
OBJECT_ATTRIBUTES ObjectAttributes;
UNICODE_STRING KeyName;
return TRUE;
}
+
BOOLEAN
-AddKbLayoutsToRegistry(IN const MUI_LAYOUTS * MuiLayouts)
+AddKbLayoutsToRegistry(
+ IN const MUI_LAYOUTS *MuiLayouts)
{
OBJECT_ATTRIBUTES ObjectAttributes;
UNICODE_STRING KeyName;
}
else
{
- swprintf(szLangID, L"d%03u%s", uCount, MuiLayouts[uIndex].LangID);
+ swprintf(szLangID, L"d%03lu%s", uCount, MuiLayouts[uIndex].LangID);
Status = NtSetValueKey(KeyHandle,
&ValueName,
0,
return TRUE;
}
+
BOOLEAN
AddKeyboardLayouts(VOID)
{
ULONG lngIndex = 0;
+
do
{
if (_wcsicmp(LanguageList[lngIndex].LanguageID , SelectedLanguageId) == 0)
return FALSE;
}
-static BOOLEAN
-AddCodepageToRegistry(IN LPCWSTR ACPage, IN LPCWSTR OEMCPage, IN LPCWSTR MACCPage)
+
+static
+BOOLEAN
+AddCodepageToRegistry(
+ IN LPCWSTR ACPage,
+ IN LPCWSTR OEMCPage,
+ IN LPCWSTR MACCPage)
{
OBJECT_ATTRIBUTES ObjectAttributes;
UNICODE_STRING KeyName;
0,
REG_SZ,
(PVOID)ACPage,
- (wcslen(ACPage)+1) * sizeof(PWCHAR));
+ (wcslen(ACPage)+1) * sizeof(WCHAR));
if (!NT_SUCCESS(Status))
{
DPRINT1("NtSetValueKey() failed (Status %lx)\n", Status);
0,
REG_SZ,
(PVOID)OEMCPage,
- (wcslen(OEMCPage)+1) * sizeof(PWCHAR));
+ (wcslen(OEMCPage)+1) * sizeof(WCHAR));
if (!NT_SUCCESS(Status))
{
DPRINT1("NtSetValueKey() failed (Status %lx)\n", Status);
0,
REG_SZ,
(PVOID)MACCPage,
- (wcslen(MACCPage)+1) * sizeof(PWCHAR));
+ (wcslen(MACCPage)+1) * sizeof(WCHAR));
if (!NT_SUCCESS(Status))
{
DPRINT1("NtSetValueKey() failed (Status %lx)\n", Status);
return TRUE;
}
-static BOOLEAN
-AddFontsSettingsToRegistry(IN const MUI_SUBFONT * MuiSubFonts)
+
+static
+BOOLEAN
+AddFontsSettingsToRegistry(
+ IN const MUI_SUBFONT * MuiSubFonts)
{
OBJECT_ATTRIBUTES ObjectAttributes;
UNICODE_STRING KeyName;
ULONG uIndex = 0;
RtlInitUnicodeString(&KeyName,
- L"\\Registry\\Machine\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\SysFontSubstitutes");
+ L"\\Registry\\Machine\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\FontSubstitutes");
InitializeObjectAttributes(&ObjectAttributes,
&KeyName,
OBJ_CASE_INSENSITIVE,
return TRUE;
}
+
BOOLEAN
AddCodePage(VOID)
{
return FALSE;
}
+
VOID
SetConsoleCodePage(VOID)
{