Current implementation  avoid add string to configuration spacke through 
not report language used for configuration string packages. This caused 
Get string from configuration space failed. Now update the logic, only 
avoid add string to configruation space when user not input language 
when call HiiSetString.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Eric Dong <eric.d...@intel.com>
---
 MdeModulePkg/Library/UefiHiiLib/HiiString.c    | 7 +++++++
 MdeModulePkg/Universal/HiiDatabaseDxe/String.c | 6 ------
 2 files changed, 7 insertions(+), 6 deletions(-)

diff --git a/MdeModulePkg/Library/UefiHiiLib/HiiString.c 
b/MdeModulePkg/Library/UefiHiiLib/HiiString.c
index bfca206..521a90f 100644
--- a/MdeModulePkg/Library/UefiHiiLib/HiiString.c
+++ b/MdeModulePkg/Library/UefiHiiLib/HiiString.c
@@ -104,10 +104,17 @@ HiiSetString (
     //
     for (; *Supported != 0 && *Supported != ';'; Supported++);
     if (*Supported != 0) {
       *(Supported++) = '\0';
     }
+    
+    if ((SupportedLanguages == NULL) && AsciiStrnCmp (Language, 
UEFI_CONFIG_LANG, AsciiStrLen (UEFI_CONFIG_LANG)) == 0) {
+      //
+      // Skip string package used for keyword protocol.
+      //
+      continue;
+    }
 
     //
     // If StringId is 0, then call NewString().  Otherwise, call SetString()
     //
     if (StringId == (EFI_STRING_ID)(0)) {
diff --git a/MdeModulePkg/Universal/HiiDatabaseDxe/String.c 
b/MdeModulePkg/Universal/HiiDatabaseDxe/String.c
index 7698cc2..b93d159 100644
--- a/MdeModulePkg/Universal/HiiDatabaseDxe/String.c
+++ b/MdeModulePkg/Universal/HiiDatabaseDxe/String.c
@@ -1832,16 +1832,10 @@ HiiGetLanguages (
   for (Link = PackageListNode->StringPkgHdr.ForwardLink;
        Link != &PackageListNode->StringPkgHdr;
        Link = Link->ForwardLink
       ) {
     StringPackage = CR (Link, HII_STRING_PACKAGE_INSTANCE, StringEntry, 
HII_STRING_PACKAGE_SIGNATURE);
-    if (AsciiStrnCmp (StringPackage->StringPkgHdr->Language, UEFI_CONFIG_LANG, 
AsciiStrLen (UEFI_CONFIG_LANG)) == 0) {
-      //
-      // Skip string package used for keyword protocol.
-      //
-      continue;
-    }
     ResultSize += AsciiStrSize (StringPackage->StringPkgHdr->Language);
     if (ResultSize <= *LanguagesSize) {
       AsciiStrCpy (Languages, StringPackage->StringPkgHdr->Language);
       Languages += AsciiStrSize (StringPackage->StringPkgHdr->Language);
       *(Languages - 1) = L';';
-- 
1.9.5.msysgit.1

_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel

Reply via email to