CHAR16 *gFunctionTenString;\r
CHAR16 *gEnterString;\r
CHAR16 *gEnterCommitString;\r
+CHAR16 *gEnterEscapeString;\r
CHAR16 *gEscapeString;\r
CHAR16 *gSaveFailed;\r
CHAR16 *gMoveHighlight;\r
CHAR16 *gMinusString;\r
CHAR16 *gAdjustNumber;\r
CHAR16 *gSaveChanges;\r
+CHAR16 *gOptionMismatch;\r
\r
CHAR16 gPromptBlockWidth;\r
CHAR16 gOptionBlockWidth;\r
CHAR16 *Progress;\r
CHAR16 *Result;\r
CHAR16 *Value;\r
+ CHAR16 *StringPtr;\r
UINTN Length;\r
BOOLEAN IsBufferStorage;\r
BOOLEAN IsString;\r
// Skip '=', point to value\r
//\r
Value = Value + 1;\r
+\r
+ //\r
+ // Suppress <AltResp> if any\r
+ //\r
+ StringPtr = Value;\r
+ while (*StringPtr != L'\0' && *StringPtr != L'&') {\r
+ StringPtr++;\r
+ }\r
+ *StringPtr = L'\0';\r
+\r
if (!IsBufferStorage && IsString) {\r
//\r
// Convert Config String to Unicode String, e.g "0041004200430044" => "ABCD"\r
Question = FORM_BROWSER_STATEMENT_FROM_LINK (Link);\r
Link = GetNextNode (&Form->StatementListHead, Link);\r
\r
+ //\r
+ // If Question is suppressed, don't reset it to default\r
+ //\r
+ if (Question->SuppressExpression != NULL) {\r
+ Status = EvaluateExpression (FormSet, Form, Question->SuppressExpression);\r
+ if (!EFI_ERROR (Status) && Question->SuppressExpression->Result.Value.b) {\r
+ continue;\r
+ }\r
+ }\r
+\r
//\r
// Reset Question to its default value\r
//\r
Package = ((UINT8 *) HiiPackageList) + Offset;\r
CopyMem (&PackageHeader, Package, sizeof (EFI_HII_PACKAGE_HEADER));\r
\r
- if (PackageHeader.Type == EFI_HII_PACKAGE_FORM) {\r
+ if (PackageHeader.Type == EFI_HII_PACKAGE_FORMS) {\r
//\r
// Search FormSet in this Form Package\r
//\r