Status = EFI_INVALID_PARAMETER;\r
goto Exit;\r
}\r
- //\r
- // Skip '&'\r
- //\r
- StringPtr++;\r
\r
//\r
// Parse each <ConfigElement> if exists\r
- // Only <BlockConfig> format is supported by this help function.\r
+ // Only '&'<BlockConfig> format is supported by this help function.\r
// <BlockConfig> ::= 'OFFSET='<Number>&'WIDTH='<Number>&'VALUE='<Number>\r
//\r
- while (*StringPtr != 0 && StrnCmp (StringPtr, L"OFFSET=", StrLen (L"OFFSET=")) == 0) {\r
- StringPtr += StrLen (L"OFFSET=");\r
+ while (*StringPtr != 0 && StrnCmp (StringPtr, L"&OFFSET=", StrLen (L"&OFFSET=")) == 0) {\r
+ StringPtr += StrLen (L"&OFFSET=");\r
//\r
// Get Offset\r
//\r
\r
StringPtr += Length;\r
if (StrnCmp (StringPtr, L"&WIDTH=", StrLen (L"&WIDTH=")) != 0) {\r
- *Progress = StringPtr - Length - StrLen (L"OFFSET=") - 1;\r
+ *Progress = StringPtr - Length - StrLen (L"&OFFSET=");\r
Status = EFI_INVALID_PARAMETER;\r
goto Exit;\r
}\r
\r
StringPtr += Length;\r
if (*StringPtr != 0 && *StringPtr != L'&') {\r
- *Progress = StringPtr - Length - 7;\r
+ *Progress = StringPtr - Length - StrLen (L"&VALUE=");\r
Status = EFI_INVALID_PARAMETER;\r
goto Exit;\r
}\r
Value = NULL;\r
\r
//\r
- // If '\0', parsing is finished. Otherwise skip '&' to continue\r
+ // If '\0', parsing is finished.\r
//\r
if (*StringPtr == 0) {\r
break;\r
}\r
-\r
- StringPtr++;\r
}\r
\r
//\r
- // The input string is ConfigAltResp format.\r
+ // The input string is not ConfigResp format, return error.\r
//\r
- if ((*StringPtr != 0) && (StrnCmp (StringPtr, L"&GUID=", StrLen (L"&GUID=")) != 0)) {\r
- *Progress = StringPtr - 1;\r
+ if (*StringPtr != 0) {\r
+ *Progress = StringPtr;\r
Status = EFI_INVALID_PARAMETER;\r
goto Exit;\r
}\r