Update HiiDataBase driver to use GetBestLanguage() for matching RFC 4646 languages.

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8262 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
rsun3
2009-05-08 05:39:24 +00:00
parent 62e71e2fbe
commit 844390f7d5
3 changed files with 20 additions and 61 deletions

View File

@@ -784,6 +784,7 @@ InsertStringPackage (
EFI_STATUS Status;
EFI_HII_PACKAGE_HEADER PackageHeader;
CHAR8 *Language;
CHAR8 *MatchedLanguage;
UINT32 LanguageSize;
LIST_ENTRY *Link;
@@ -809,8 +810,10 @@ InsertStringPackage (
AsciiStrCpy (Language, (CHAR8 *) PackageHdr + HeaderSize - LanguageSize);
for (Link = PackageList->StringPkgHdr.ForwardLink; Link != &PackageList->StringPkgHdr; Link = Link->ForwardLink) {
StringPackage = CR (Link, HII_STRING_PACKAGE_INSTANCE, StringEntry, HII_STRING_PACKAGE_SIGNATURE);
if (HiiCompareLanguage (Language, StringPackage->StringPkgHdr->Language)) {
MatchedLanguage = GetBestLanguage (StringPackage->StringPkgHdr->Language, FALSE, (CHAR8 *) Language, NULL);
if (MatchedLanguage != NULL) {
FreePool (Language);
FreePool (MatchedLanguage);
return EFI_UNSUPPORTED;
}
}