]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdeModulePkg/Universal/HiiDatabaseDxe/String.c
Fix ICC build failure.
[mirror_edk2.git] / MdeModulePkg / Universal / HiiDatabaseDxe / String.c
index 931e7b397b81b4b5de25d08e9b2ff9a9775499d0..92d066485620ecea3663872e0a22a41af15864db 100644 (file)
@@ -1954,8 +1954,8 @@ HiiGetSecondaryLanguages (
 /**\r
   Compare whether two names of languages are identical.\r
 \r
-  @param  Language1              Name of language 1\r
-  @param  Language2              Name of language 2\r
+  @param  Language1              Name of language 1 from StringPackage\r
+  @param  Language2              Name of language 2 to be compared with language 1.\r
 \r
   @retval TRUE                   same\r
   @retval FALSE                  not same\r
@@ -1967,8 +1967,25 @@ HiiCompareLanguage (
   IN  CHAR8  *Language2\r
   )\r
 {\r
-  UINTN Language2Len;\r
+  UINTN  Index;\r
+\r
+  //\r
+  // Compare the Primary Language in Language1 to Language2\r
+  //\r
+  for (Index = 0; Language1[Index] != 0 && Language1[Index] != ';'; Index++) {\r
+    if (Language1[Index] != Language2[Index]) {\r
+      //\r
+      // Return FALSE if any characters are different.\r
+      //\r
+      return FALSE;\r
+    }\r
+  }\r
 \r
-  Language2Len = AsciiStrLen (Language2);\r
-  return  (BOOLEAN) (AsciiStrnCmp (Language1, Language2, Language2Len) == 0);\r
+  //\r
+  // Only return TRUE if Language2[Index] is a Null-terminator which means\r
+  // the Primary Language in Language1 is the same length as Language2.  If\r
+  // Language2[Index] is not a Null-terminator, then Language2 is longer than\r
+  // the Primary Language in Language1, and FALSE must be returned.\r
+  //\r
+  return (BOOLEAN) (Language2[Index] == 0);\r
 }\r