]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdeModulePkg/Universal/HiiDatabaseDxe/String.c
Use exactly match method for HiiCompareLanguage.
[mirror_edk2.git] / MdeModulePkg / Universal / HiiDatabaseDxe / String.c
index 0846abfe4253c0ed2adbbf565eb4aa6b0b564b9a..194e44e6d06dd0a8566da6f1fed1af46ea310f2a 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,25 +1967,25 @@ HiiCompareLanguage (
   IN  CHAR8  *Language2\r
   )\r
 {\r
+  UINTN  Index;\r
+\r
   //\r
-  // Porting Guide:\r
-  // This library interface is simply obsolete.\r
-  // Include the source code to user code.\r
+  // Compare the Primary Language in Language1 to Language2\r
   //\r
-  UINTN Index;\r
-\r
-  for (Index = 0; (Language1[Index] != 0) && (Language2[Index] != 0); Index++) {\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
-  if (((Language1[Index] == 0) && (Language2[Index] == 0))   || \r
-         ((Language1[Index] == 0) && (Language2[Index] != ';')) ||\r
-         ((Language1[Index] == ';') && (Language2[Index] != 0)) ||\r
-         ((Language1[Index] == ';') && (Language2[Index] != ';'))) {\r
-    return TRUE;\r
-  }\r
-\r
-  return FALSE;\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 (Language2[Index] == 0);\r
 }\r