Revision: 13983
          http://edk2.svn.sourceforge.net/edk2/?rev=13983&view=rev
Author:   ydong10
Date:     2012-12-05 09:27:15 +0000 (Wed, 05 Dec 2012)
Log Message:
-----------
Update the HiiConfigToBlock to follow spec.

Signed-off-by: Eric Dong <[email protected]>
Reviewed-by: Liming Gao <[email protected]>

Modified Paths:
--------------
    trunk/edk2/MdeModulePkg/Universal/HiiDatabaseDxe/ConfigRouting.c
    trunk/edk2/MdeModulePkg/Universal/SetupBrowserDxe/Setup.c

Modified: trunk/edk2/MdeModulePkg/Universal/HiiDatabaseDxe/ConfigRouting.c
===================================================================
--- trunk/edk2/MdeModulePkg/Universal/HiiDatabaseDxe/ConfigRouting.c    
2012-12-03 16:40:55 UTC (rev 13982)
+++ trunk/edk2/MdeModulePkg/Universal/HiiDatabaseDxe/ConfigRouting.c    
2012-12-05 09:27:15 UTC (rev 13983)
@@ -3919,18 +3919,14 @@
     Status = EFI_INVALID_PARAMETER;
     goto Exit;
   }
-  //
-  // Skip '&'
-  //
-  StringPtr++;
 
   //
   // Parse each <ConfigElement> if exists
-  // Only <BlockConfig> format is supported by this help function.
+  // Only '&'<BlockConfig> format is supported by this help function.
   // <BlockConfig> ::= 'OFFSET='<Number>&'WIDTH='<Number>&'VALUE='<Number>
   //
-  while (*StringPtr != 0 && StrnCmp (StringPtr, L"OFFSET=", StrLen 
(L"OFFSET=")) == 0) {
-    StringPtr += StrLen (L"OFFSET=");
+  while (*StringPtr != 0 && StrnCmp (StringPtr, L"&OFFSET=", StrLen 
(L"&OFFSET=")) == 0) {
+    StringPtr += StrLen (L"&OFFSET=");
     //
     // Get Offset
     //
@@ -3949,7 +3945,7 @@
 
     StringPtr += Length;
     if (StrnCmp (StringPtr, L"&WIDTH=", StrLen (L"&WIDTH=")) != 0) {
-      *Progress = StringPtr - Length - StrLen (L"OFFSET=") - 1;
+      *Progress = StringPtr - Length - StrLen (L"&OFFSET=");
       Status = EFI_INVALID_PARAMETER;
       goto Exit;
     }
@@ -3990,7 +3986,7 @@
 
     StringPtr += Length;
     if (*StringPtr != 0 && *StringPtr != L'&') {
-      *Progress = StringPtr - Length - 7;
+      *Progress = StringPtr - Length - StrLen (L"&VALUE=");
       Status = EFI_INVALID_PARAMETER;
       goto Exit;
     }
@@ -4009,20 +4005,18 @@
     Value = NULL;
 
     //
-    // If '\0', parsing is finished. Otherwise skip '&' to continue
+    // If '\0', parsing is finished.
     //
     if (*StringPtr == 0) {
       break;
     }
-
-    StringPtr++;
   }
   
   //
-  // The input string is ConfigAltResp format.
+  // The input string is not ConfigResp format, return error.
   //
-  if ((*StringPtr != 0) && (StrnCmp (StringPtr, L"&GUID=", StrLen (L"&GUID=")) 
!= 0)) {
-    *Progress = StringPtr - 1;
+  if (*StringPtr != 0) {
+    *Progress = StringPtr;
     Status = EFI_INVALID_PARAMETER;
     goto Exit;
   }

Modified: trunk/edk2/MdeModulePkg/Universal/SetupBrowserDxe/Setup.c
===================================================================
--- trunk/edk2/MdeModulePkg/Universal/SetupBrowserDxe/Setup.c   2012-12-03 
16:40:55 UTC (rev 13982)
+++ trunk/edk2/MdeModulePkg/Universal/SetupBrowserDxe/Setup.c   2012-12-05 
09:27:15 UTC (rev 13983)
@@ -3513,7 +3513,7 @@
   //
   // Convert Result from <ConfigAltResp> to <ConfigResp>
   //
-  StrPtr = StrStr (Result, L"ALTCFG");
+  StrPtr = StrStr (Result, L"&GUID=");
   if (StrPtr != NULL) {
     *StrPtr = L'\0';
   }

This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.


------------------------------------------------------------------------------
LogMeIn Rescue: Anywhere, Anytime Remote support for IT. Free Trial
Remotely access PCs and mobile devices and provide instant support
Improve your efficiency, and focus on delivering more value-add services
Discover what IT Professionals Know. Rescue delivers
http://p.sf.net/sfu/logmein_12329d2d
_______________________________________________
edk2-commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/edk2-commits

Reply via email to