/* Search an Option of a Question by its value. */
QUESTION_OPTION* ValueToOption(IN FORM_BROWSER_STATEMENT *Question, IN EFI_HII_VALUE *OptionValue)
/* Search an Option of a Question by its value. */
QUESTION_OPTION* ValueToOption(IN FORM_BROWSER_STATEMENT *Question, IN EFI_HII_VALUE *OptionValue)
{
  LIST_ENTRY       *Link;
  QUESTION_OPTION  *Option;
  INTN             Result;
  Link = GetFirstNode (&Question->OptionListHead);
  while (!IsNull (&Question->OptionListHead, Link)) {
    Option = QUESTION_OPTION_FROM_LINK (Link);
    if ((CompareHiiValue (&Option->Value, OptionValue, &Result, NULL) == EFI_SUCCESS) && (Result == 0)) {
      if ((Option->SuppressExpression == NULL) ||
          ((EvaluateExpressionList (Option->SuppressExpression, FALSE, NULL, NULL) == ExpressFalse)))
      {
        return Option;
      }
    }
    Link = GetNextNode (&Question->OptionListHead, Link);
  }
  return NULL;
}