/**\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
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