+ //\r
+ // set up for an 'in' for loop\r
+ //\r
+ NewSize = StrSize(ArgSet);\r
+ NewSize += sizeof(SHELL_FOR_INFO)+StrSize(gEfiShellParametersProtocol->Argv[1]);\r
+ Info = AllocateZeroPool(NewSize);\r
+ ASSERT(Info != NULL);\r
+ Info->Signature = SHELL_FOR_INFO_SIGNATURE;\r
+ CopyMem(Info->Set, ArgSet, StrSize(ArgSet));\r
+ NewSize = StrSize(gEfiShellParametersProtocol->Argv[1]);\r
+ CopyMem(Info->Set+(StrSize(ArgSet)/sizeof(Info->Set[0])), gEfiShellParametersProtocol->Argv[1], NewSize);\r
+ Info->ReplacementName = Info->Set+StrSize(ArgSet)/sizeof(Info->Set[0]);\r
+ Info->CurrentValue = (CHAR16*)Info->Set;\r
+ Info->Step = 0;\r
+ Info->Current = 0;\r
+ Info->End = 0;\r
+\r
+ if (InternalIsAliasOnList(Info->ReplacementName, &CurrentScriptFile->SubstList)) {\r
+ Info->RemoveSubstAlias = FALSE;\r
+ } else {\r
+ Info->RemoveSubstAlias = TRUE;\r
+ }\r
+ CurrentScriptFile->CurrentCommand->Data = Info;\r