return (Copy);\r
}\r
\r
+/**\r
+ Fix a string to only have the environment variable name, removing starting at the first space of whatever is quoted and removing the leading and trailing %.\r
+\r
+ @param[in] FileName The filename to start with.\r
+\r
+ @retval NULL FileName was invalid.\r
+ @return The modified FileName.\r
+**/\r
+CHAR16*\r
+EFIAPI\r
+FixVarName (\r
+ IN CHAR16 *FileName\r
+ )\r
+{\r
+ CHAR16 *Copy;\r
+ CHAR16 *TempLocation;\r
+\r
+ Copy = FileName;\r
+\r
+ if (FileName[0] == L'%') {\r
+ Copy = FileName+1;\r
+ if ((TempLocation = StrStr(Copy , L"%")) != NULL) {\r
+ TempLocation[0] = CHAR_NULL;\r
+ } \r
+ }\r
+\r
+ return (FixFileName(Copy));\r
+}\r
+\r
/**\r
Funcion will replace the current StdIn and StdOut in the ShellParameters protocol\r
structure by parsing NewCommandLine. The current values are returned to the\r
}\r
}\r
if (StdErrVarName != NULL) {\r
- if ((StdErrVarName = FixFileName(StdErrVarName)) == NULL) {\r
+ if ((StdErrVarName = FixVarName(StdErrVarName)) == NULL) {\r
Status = EFI_INVALID_PARAMETER;\r
}\r
}\r
if (StdOutVarName != NULL) {\r
- if ((StdOutVarName = FixFileName(StdOutVarName)) == NULL) {\r
+ if ((StdOutVarName = FixVarName(StdOutVarName)) == NULL) {\r
Status = EFI_INVALID_PARAMETER;\r
}\r
}\r
if (StdInVarName != NULL) {\r
- if ((StdInVarName = FixFileName(StdInVarName)) == NULL) {\r
+ if ((StdInVarName = FixVarName(StdInVarName)) == NULL) {\r
Status = EFI_INVALID_PARAMETER;\r
}\r
}\r