Update HiiCompareLanguage to support case that language in String package is "en" and the input language is "en-US".

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11356 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
lgao4 2011-03-08 08:50:26 +00:00
parent 11232773ac
commit b0bdc7ba21
2 changed files with 21 additions and 5 deletions

View File

@ -1757,8 +1757,8 @@ HiiGetAltCfg (
/**
Compare whether two names of languages are identical.
@param Language1 Name of language 1
@param Language2 Name of language 2
@param Language1 Name of language 1 from StringPackage
@param Language2 Name of language 2 to be compared with language 1.
@retval TRUE same
@retval FALSE not same

View File

@ -1954,8 +1954,8 @@ HiiGetSecondaryLanguages (
/**
Compare whether two names of languages are identical.
@param Language1 Name of language 1
@param Language2 Name of language 2
@param Language1 Name of language 1 from StringPackage
@param Language2 Name of language 2 to be compared with language 1.
@retval TRUE same
@retval FALSE not same
@ -1969,6 +1969,22 @@ HiiCompareLanguage (
{
UINTN Language2Len;
//
// When languages are exactly same, they will be identical.
//
Language2Len = AsciiStrLen (Language2);
return (BOOLEAN) (AsciiStrnCmp (Language1, Language2, Language2Len) == 0);
if (AsciiStrnCmp (Language2, Language1, Language2Len) == 0) {
return TRUE;
}
//
// When Language1 is the sub tag of Language2, they will also be regarded as identical.
// This is added to support current Shell. Shell string package uses "en" as language name.
// But, it may use platform language "en-US" to get string value.
//
if (AsciiStrStr (Language2, Language1) == Language2) {
return TRUE;
}
return FALSE;
}