Sync in bug fix from EDK I:
1) issue with setup browser and IFR refresh opcode 2) [HII]HIIConfigRoutingExportConfig generate error format of <MultiConfigAltResp> 3) [HII] ConfigRouting->ExtractConfig() will cause overflow 4) [Hii Database] EFI_HII_DATABASE_NOTIFY should be invoked when a string package is created internally when a new String Token is created 5) [PT]HIIConfigAccessProtocolTest fail on NT32uefi 6) Incorrect HII package types in EDK git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@6378 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
@@ -58,6 +58,7 @@ CHAR16 *gFunctionNineString;
|
||||
CHAR16 *gFunctionTenString;
|
||||
CHAR16 *gEnterString;
|
||||
CHAR16 *gEnterCommitString;
|
||||
CHAR16 *gEnterEscapeString;
|
||||
CHAR16 *gEscapeString;
|
||||
CHAR16 *gSaveFailed;
|
||||
CHAR16 *gMoveHighlight;
|
||||
@@ -81,6 +82,7 @@ CHAR16 *gPlusString;
|
||||
CHAR16 *gMinusString;
|
||||
CHAR16 *gAdjustNumber;
|
||||
CHAR16 *gSaveChanges;
|
||||
CHAR16 *gOptionMismatch;
|
||||
|
||||
CHAR16 gPromptBlockWidth;
|
||||
CHAR16 gOptionBlockWidth;
|
||||
@@ -1050,6 +1052,7 @@ GetQuestionValue (
|
||||
CHAR16 *Progress;
|
||||
CHAR16 *Result;
|
||||
CHAR16 *Value;
|
||||
CHAR16 *StringPtr;
|
||||
UINTN Length;
|
||||
BOOLEAN IsBufferStorage;
|
||||
BOOLEAN IsString;
|
||||
@@ -1245,6 +1248,16 @@ GetQuestionValue (
|
||||
// Skip '=', point to value
|
||||
//
|
||||
Value = Value + 1;
|
||||
|
||||
//
|
||||
// Suppress <AltResp> if any
|
||||
//
|
||||
StringPtr = Value;
|
||||
while (*StringPtr != L'\0' && *StringPtr != L'&') {
|
||||
StringPtr++;
|
||||
}
|
||||
*StringPtr = L'\0';
|
||||
|
||||
if (!IsBufferStorage && IsString) {
|
||||
//
|
||||
// Convert Config String to Unicode String, e.g "0041004200430044" => "ABCD"
|
||||
@@ -1895,6 +1908,16 @@ ExtractFormDefault (
|
||||
Question = FORM_BROWSER_STATEMENT_FROM_LINK (Link);
|
||||
Link = GetNextNode (&Form->StatementListHead, Link);
|
||||
|
||||
//
|
||||
// If Question is suppressed, don't reset it to default
|
||||
//
|
||||
if (Question->SuppressExpression != NULL) {
|
||||
Status = EvaluateExpression (FormSet, Form, Question->SuppressExpression);
|
||||
if (!EFI_ERROR (Status) && Question->SuppressExpression->Result.Value.b) {
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
// Reset Question to its default value
|
||||
//
|
||||
@@ -2146,7 +2169,7 @@ GetIfrBinaryData (
|
||||
Package = ((UINT8 *) HiiPackageList) + Offset;
|
||||
CopyMem (&PackageHeader, Package, sizeof (EFI_HII_PACKAGE_HEADER));
|
||||
|
||||
if (PackageHeader.Type == EFI_HII_PACKAGE_FORM) {
|
||||
if (PackageHeader.Type == EFI_HII_PACKAGE_FORMS) {
|
||||
//
|
||||
// Search FormSet in this Form Package
|
||||
//
|
||||
|
Reference in New Issue
Block a user