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:
qwang12
2008-11-04 14:28:08 +00:00
parent 9185c388a9
commit 8d00a0f195
23 changed files with 680 additions and 550 deletions

View File

@@ -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
//