for (Index = 0; Index < OptionCount; Index++) {\r
OneOfOption = QUESTION_OPTION_FROM_LINK (Link);\r
Link = GetNextNode (&Question->OptionListHead, Link);\r
- if ((OneOfOption->SuppressExpression == NULL) ||\r
- EvaluateExpressionList(OneOfOption->SuppressExpression, FALSE, NULL, NULL) == ExpressFalse) {\r
- RemoveEntryList (&OneOfOption->Link);\r
- InsertHeadList (&Question->OptionListHead, &OneOfOption->Link);\r
+ if ((OneOfOption->SuppressExpression != NULL) &&\r
+ EvaluateExpressionList(OneOfOption->SuppressExpression, FALSE, NULL, NULL) > ExpressFalse) {\r
+ continue;\r
+ } else {\r
PopUpMenuLines++;\r
}\r
}\r
Link = GetFirstNode (&Question->OptionListHead);\r
for (Index = 0; Index < PopUpMenuLines; Index++) {\r
OneOfOption = QUESTION_OPTION_FROM_LINK (Link);\r
+ Link = GetNextNode (&Question->OptionListHead, Link);\r
+\r
+ if (!OrderedList && (OneOfOption->SuppressExpression != NULL) &&\r
+ EvaluateExpressionList(OneOfOption->SuppressExpression, FALSE, NULL, NULL) > ExpressFalse) {\r
+ Index--;\r
+ continue;\r
+ }\r
\r
StringPtr = GetToken (OneOfOption->Text, MenuOption->Handle);\r
if (StrLen (StringPtr) > PopUpWidth) {\r
//\r
HighlightOptionIndex = Index;\r
}\r
-\r
- Link = GetNextNode (&Question->OptionListHead, Link);\r
}\r
\r
//\r
Link = GetFirstNode (&Question->OptionListHead);\r
for (Index = 0; Index < TopOptionIndex; Index++) {\r
Link = GetNextNode (&Question->OptionListHead, Link);\r
+\r
+ OneOfOption = QUESTION_OPTION_FROM_LINK (Link);\r
+ if (!OrderedList && (OneOfOption->SuppressExpression != NULL) &&\r
+ EvaluateExpressionList(OneOfOption->SuppressExpression, FALSE, NULL, NULL) > ExpressFalse) {\r
+ Index--;\r
+ continue;\r
+ }\r
}\r
\r
//\r
OneOfOption = QUESTION_OPTION_FROM_LINK (Link);\r
Link = GetNextNode (&Question->OptionListHead, Link);\r
\r
+ if (!OrderedList && (OneOfOption->SuppressExpression != NULL) &&\r
+ EvaluateExpressionList(OneOfOption->SuppressExpression, FALSE, NULL, NULL) > ExpressFalse) {\r
+ Index--;\r
+ continue;\r
+ }\r
+\r
StringPtr = GetToken (OneOfOption->Text, MenuOption->Handle);\r
ASSERT (StringPtr != NULL);\r
//\r
{\r
EFI_STATUS Status;\r
\r
- do {\r
- UiWaitForSingleEvent (gST->ConIn->WaitForKey, 0, 0);\r
+ while (TRUE) {\r
Status = gST->ConIn->ReadKeyStroke (gST->ConIn, Key);\r
- } while (EFI_ERROR(Status));\r
+ if (!EFI_ERROR (Status)) {\r
+ break;\r
+ }\r
\r
+ if (Status != EFI_NOT_READY) {\r
+ continue;\r
+ }\r
+\r
+ UiWaitForSingleEvent (gST->ConIn->WaitForKey, 0, 0);\r
+ }\r
return Status;\r
}\r