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