STATIC CONST CHAR16 mExecutableExtensions[] = L".NSH;.EFI";\r
STATIC CONST CHAR16 mStartupScript[] = L"startup.nsh";\r
\r
+/**\r
+ Determine if a command line contains a valid split operation\r
+\r
+ @param[in] CmdLine The command line to parse.\r
+\r
+ @retval TRUE CmdLine has a valid split.\r
+ @retval FALSE CmdLine does not have a valid split.\r
+**/\r
+BOOLEAN\r
+EFIAPI\r
+ContainsSplit(\r
+ IN CONST CHAR16 *CmdLine\r
+ )\r
+{\r
+ CONST CHAR16 *TempSpot;\r
+ TempSpot = NULL;\r
+ if (StrStr(CmdLine, L"|") != NULL) {\r
+ for (TempSpot = CmdLine ; TempSpot != NULL && *TempSpot != CHAR_NULL ; TempSpot++) {\r
+ if (*TempSpot == L'^' && *(TempSpot+1) == L'|') {\r
+ TempSpot++;\r
+ } else if (*TempSpot == L'|') {\r
+ break;\r
+ }\r
+ }\r
+ }\r
+ return (TempSpot != NULL && *TempSpot != CHAR_NULL);\r
+}\r
+\r
/**\r
Function to start monitoring for CTRL-S using SimpleTextInputEx. This \r
feature's enabled state was not known when the shell initially launched.\r
SHELL_FILE_HANDLE OriginalStdOut;\r
SHELL_FILE_HANDLE OriginalStdErr;\r
SYSTEM_TABLE_INFO OriginalSystemTableInfo;\r
- CHAR16 *TempLocation3;\r
UINTN Count;\r
UINTN Count2;\r
CHAR16 *CleanOriginal;\r
//\r
// We dont do normal processing with a split command line (output from one command input to another)\r
//\r
- TempLocation3 = NULL;\r
- if (StrStr(PostVariableCmdLine, L"|") != NULL) {\r
- for (TempLocation3 = PostVariableCmdLine ; TempLocation3 != NULL && *TempLocation3 != CHAR_NULL ; TempLocation3++) {\r
- if (*TempLocation3 == L'^' && *(TempLocation3+1) == L'|') {\r
- TempLocation3++;\r
- } else if (*TempLocation3 == L'|') {\r
- break;\r
- }\r
- }\r
- }\r
- if (TempLocation3 != NULL && *TempLocation3 != CHAR_NULL) {\r
+ if (ContainsSplit(PostVariableCmdLine)) {\r
//\r
// are we in an existing split???\r
//\r