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
//\r
- // When languages are exactly same, they will be identical. \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
- Language2Len = AsciiStrLen (Language2);\r
- return (BOOLEAN) (AsciiStrnCmp (Language1, Language2, Language2Len) == 0);\r
+ return (Language2[Index] == 0);\r
}\r