summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorqhuang8 <qhuang8@6f19259b-4bc3-4df7-8a09-765794883524>2008-01-16 09:56:47 +0000
committerqhuang8 <qhuang8@6f19259b-4bc3-4df7-8a09-765794883524>2008-01-16 09:56:47 +0000
commit9c97204a75b1803176067fc02103aa4b26278588 (patch)
tree25f7d8658b45c48751e6852a1e6eb8c92fb5bee2
parent16f2a7da7ab86713731b09b63292b5c6f0781c22 (diff)
downloadedk2-9c97204a75b1803176067fc02103aa4b26278588.zip
edk2-9c97204a75b1803176067fc02103aa4b26278588.tar.gz
edk2-9c97204a75b1803176067fc02103aa4b26278588.tar.bz2
Fix the bug in performing language comparison. The old version applies to ISO639-2, we should use that for RFC3066.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/branches/UefiHiiEnable4354@4562 6f19259b-4bc3-4df7-8a09-765794883524
-rw-r--r--MdeModulePkg/Universal/UefiHiiDatabaseDxe/R8Lib.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/MdeModulePkg/Universal/UefiHiiDatabaseDxe/R8Lib.c b/MdeModulePkg/Universal/UefiHiiDatabaseDxe/R8Lib.c
index e211edd..5458b16 100644
--- a/MdeModulePkg/Universal/UefiHiiDatabaseDxe/R8Lib.c
+++ b/MdeModulePkg/Universal/UefiHiiDatabaseDxe/R8Lib.c
@@ -63,13 +63,20 @@ R8_EfiLibCompareLanguage (
//
UINTN Index;
- for (Index = 0; Index < 3; Index++) {
+ for (Index = 0; (Language1[Index] != 0) && (Language2[Index] != 0); Index++) {
if (Language1[Index] != Language2[Index]) {
return FALSE;
}
}
- return TRUE;
+ if (((Language1[Index] == 0) && (Language2[Index] == 0)) ||
+ ((Language1[Index] == 0) && (Language2[Index] != ';')) ||
+ ((Language1[Index] == ';') && (Language2[Index] != 0)) ||
+ ((Language1[Index] == ';') && (Language2[Index] != ';'))) {
+ return TRUE;
+ }
+
+ return FALSE;
}