[ros-diffs] [janderwald] 32536: - simplify code by using FindLanguageIndex for various string, error, page functions - fixes a crash when no hdd is attached See issue #3109 for more details.

janderwald at svn.reactos.org janderwald at svn.reactos.org
Fri Feb 29 15:27:33 CET 2008


Author: janderwald
Date: Fri Feb 29 17:27:32 2008
New Revision: 32536

URL: http://svn.reactos.org/svn/reactos?rev=32536&view=rev
Log:
- simplify code by using FindLanguageIndex for various string, error, page functions
- fixes a crash when no hdd is attached
See issue #3109 for more details.

Modified:
    trunk/reactos/base/setup/usetup/mui.c

Modified: trunk/reactos/base/setup/usetup/mui.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/base/setup/usetup/mui.c?rev=32536&r1=32535&r2=32536&view=diff
==============================================================================
--- trunk/reactos/base/setup/usetup/mui.c (original)
+++ trunk/reactos/base/setup/usetup/mui.c Fri Feb 29 17:27:32 2008
@@ -94,7 +94,8 @@
 
     if (SelectedLanguageId == NULL)
     {
-        return -1;
+        /* default to english */
+        return 0;
     } 
 
     do
@@ -107,7 +108,7 @@
         lngIndex++;
     }while (LanguageList[lngIndex].MuiPages != NULL);
 
-    return -1;
+    return 0;
 }
 
 
@@ -116,31 +117,19 @@
 FindMUIEntriesOfPage(IN ULONG PageNumber)
 {
     ULONG muiIndex = 0;
-    ULONG lngIndex = 0;
+    ULONG lngIndex;
     const MUI_PAGE * Pages = NULL;
 
-    do
-    {
-        /* First we search the language list till we find current selected language messages */
-        if (_wcsicmp(LanguageList[lngIndex].LanguageID , SelectedLanguageId) == 0)
-        {
-            /* Get all available pages for this language */
-            Pages = LanguageList[lngIndex].MuiPages;
-
-            do
-            {
-                /* Get page messages */
-                if (Pages[muiIndex].Number == PageNumber)
-                    return Pages[muiIndex].MuiEntry;
-
-                muiIndex++;
-            }
-            while (Pages[muiIndex].MuiEntry != NULL);
-        }
-
-        lngIndex++;
-    }
-    while (LanguageList[lngIndex].MuiPages != NULL);
+    lngIndex = max(FindLanguageIndex(), 0);
+    Pages = LanguageList[lngIndex].MuiPages;
+
+    do
+    {
+         if (Pages[muiIndex].Number == PageNumber)
+             return Pages[muiIndex].MuiEntry;
+
+         muiIndex++;
+    }while (Pages[muiIndex].MuiEntry != NULL);
 
     return NULL;
 }
@@ -149,73 +138,23 @@
 const MUI_ERROR *
 FindMUIErrorEntries(VOID)
 {
-    ULONG lngIndex = 0;
-
-    do
-    {
-        /* First we search the language list till we find current selected language messages */
-        if (_wcsicmp(LanguageList[lngIndex].LanguageID , SelectedLanguageId) == 0)
-        {
-            /* Get all available error messages for this language */
-            return LanguageList[lngIndex].MuiErrors;
-        }
-
-        lngIndex++;
-    }
-    while (LanguageList[lngIndex].MuiPages != NULL);
-
-    return NULL;
+    ULONG lngIndex = max(FindLanguageIndex(), 0);
+    return LanguageList[lngIndex].MuiErrors;
 }
 
 static
 const MUI_STRING *
 FindMUIStringEntries(VOID)
 {
-    ULONG lngIndex = 0;
-    
-    if (SelectedLanguageId == NULL)
-    {
-        /* language has not yet been selected
-         * default to english
-         */
-        ASSERT(!_wcsicmp(LanguageList[lngIndex].LanguageDescriptor, L"English"));
-        return LanguageList[lngIndex].MuiStrings;
-    }
-
-    do
-    {
-        /* First we search the language list till we find current selected language messages */
-        if (_wcsicmp(LanguageList[lngIndex].LanguageID , SelectedLanguageId) == 0)
-        {
-            /* Get all available strings for this language */
-            return LanguageList[lngIndex].MuiStrings;
-        }
-
-        lngIndex++;
-    }
-    while (LanguageList[lngIndex].MuiPages != NULL);
-
-    return NULL;
+    ULONG lngIndex = max(FindLanguageIndex(), 0);
+    return LanguageList[lngIndex].MuiStrings;
 }
 
 LPCWSTR
 MUIDefaultKeyboardLayout(VOID)
 {
-    ULONG lngIndex = 0;
-    do
-    {
-        /* First we search the language list till we find current selected language messages */
-        if (_wcsicmp(LanguageList[lngIndex].LanguageID , SelectedLanguageId) == 0)
-        {
-            /* Return default keyboard layout */
-            return LanguageList[lngIndex].LanguageKeyboardLayoutID;
-        }
-
-        lngIndex++;
-    }
-    while (LanguageList[lngIndex].MuiPages != NULL);
-
-    return NULL;
+    ULONG lngIndex = max(FindLanguageIndex(), 0);
+    return LanguageList[lngIndex].LanguageKeyboardLayoutID;
 }
 
 VOID




More information about the Ros-diffs mailing list