return (UNKNOWN_INVALID);\r
}\r
\r
+/**\r
+**/\r
+EFI_STATUS\r
+EFIAPI\r
+ProcessNewSplitCommandLine(\r
+ IN CONST CHAR16 *CmdLine\r
+ )\r
+{\r
+ SPLIT_LIST *Split;\r
+ EFI_STATUS Status;\r
+\r
+ Split = NULL;\r
+\r
+ //\r
+ // are we in an existing split???\r
+ //\r
+ if (!IsListEmpty(&ShellInfoObject.SplitList.Link)) {\r
+ Split = (SPLIT_LIST*)GetFirstNode(&ShellInfoObject.SplitList.Link);\r
+ }\r
+\r
+ if (Split == NULL) {\r
+ Status = RunSplitCommand(CmdLine, NULL, NULL);\r
+ } else {\r
+ Status = RunSplitCommand(CmdLine, Split->SplitStdIn, Split->SplitStdOut);\r
+ }\r
+ if (EFI_ERROR(Status)) {\r
+ ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_SHELL_INVALID_SPLIT), ShellInfoObject.HiiHandle, CmdLine);\r
+ }\r
+ return (Status);\r
+}\r
/**\r
Function will process and run a command line.\r
\r
UINTN Count;\r
UINTN Count2;\r
CHAR16 *CleanOriginal;\r
- SPLIT_LIST *Split;\r
\r
ASSERT(CmdLine != NULL);\r
if (StrLen(CmdLine) == 0) {\r
DevPath = NULL;\r
Status = EFI_SUCCESS;\r
CleanOriginal = NULL;\r
- Split = NULL;\r
\r
CleanOriginal = StrnCatGrow(&CleanOriginal, NULL, CmdLine, 0);\r
if (CleanOriginal == NULL) {\r
// We dont do normal processing with a split command line (output from one command input to another)\r
//\r
if (ContainsSplit(CleanOriginal)) {\r
- //\r
- // are we in an existing split???\r
- //\r
- if (!IsListEmpty(&ShellInfoObject.SplitList.Link)) {\r
- Split = (SPLIT_LIST*)GetFirstNode(&ShellInfoObject.SplitList.Link);\r
- }\r
-\r
- if (Split == NULL) {\r
- Status = RunSplitCommand(CleanOriginal, NULL, NULL);\r
- } else {\r
- Status = RunSplitCommand(CleanOriginal, Split->SplitStdIn, Split->SplitStdOut);\r
- }\r
- if (EFI_ERROR(Status)) {\r
- ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_SHELL_INVALID_SPLIT), ShellInfoObject.HiiHandle, CleanOriginal);\r
- }\r
+ Status = ProcessNewSplitCommandLine(CleanOriginal);\r
} else {\r
\r
//\r