From: Jaben Carsey Date: Tue, 3 Feb 2015 16:50:12 +0000 (+0000) Subject: ShellPkg: Refactor out a now-redundant function X-Git-Tag: edk2-stable201903~10369 X-Git-Url: https://git.proxmox.com/?p=mirror_edk2.git;a=commitdiff_plain;h=0a82f7af9b5879216f532438be567f03bce0cd34 ShellPkg: Refactor out a now-redundant function Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Jaben Carsey Reviewed-by: Joe Peterson Reviewed-by: Shumin Qiu git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@16720 6f19259b-4bc3-4df7-8a09-765794883524 --- diff --git a/ShellPkg/Application/Shell/Shell.c b/ShellPkg/Application/Shell/Shell.c index 7a89f02899..49318b5228 100644 --- a/ShellPkg/Application/Shell/Shell.c +++ b/ShellPkg/Application/Shell/Shell.c @@ -100,48 +100,6 @@ TrimSpaces( return (EFI_SUCCESS); } -/** - Parse for the next instance of one string within another string. Can optionally make sure that - the string was not escaped (^ character) per the shell specification. - - @param[in] SourceString The string to search within - @param[in] FindString The string to look for - @param[in] CheckForEscapeCharacter TRUE to skip escaped instances of FinfString, otherwise will return even escaped instances -**/ -CHAR16* -EFIAPI -FindNextInstance( - IN CONST CHAR16 *SourceString, - IN CONST CHAR16 *FindString, - IN CONST BOOLEAN CheckForEscapeCharacter - ) -{ - CHAR16 *Temp; - if (SourceString == NULL) { - return (NULL); - } - Temp = StrStr(SourceString, FindString); - - // - // If nothing found, or we dont care about escape characters - // - if (Temp == NULL || !CheckForEscapeCharacter) { - return (Temp); - } - - // - // If we found an escaped character, try again on the remainder of the string - // - if ((Temp > (SourceString)) && *(Temp-1) == L'^') { - return FindNextInstance(Temp+1, FindString, CheckForEscapeCharacter); - } - - // - // we found the right character - // - return (Temp); -} - /** Check whether the string between a pair of % is a valid envifronment variable name. @@ -207,7 +165,7 @@ ContainsSplit( CONST CHAR16 *FirstQuote; CONST CHAR16 *SecondQuote; - FirstQuote = FindNextInstance (CmdLine, L"\"", TRUE); + FirstQuote = FindFirstCharacter (CmdLine, L"\"", L'^'); SecondQuote = NULL; TempSpot = FindFirstCharacter(CmdLine, L"|", L'^'); @@ -223,15 +181,15 @@ ContainsSplit( if (FirstQuote == NULL || FirstQuote > TempSpot) { break; } - SecondQuote = FindNextInstance (FirstQuote + 1, L"\"", TRUE); + SecondQuote = FindFirstCharacter (FirstQuote + 1, L"\"", L'^'); if (SecondQuote == NULL) { break; } if (SecondQuote < TempSpot) { - FirstQuote = FindNextInstance (SecondQuote + 1, L"\"", TRUE); + FirstQuote = FindFirstCharacter (SecondQuote + 1, L"\"", L'^'); continue; } else { - FirstQuote = FindNextInstance (SecondQuote + 1, L"\"", TRUE); + FirstQuote = FindFirstCharacter (SecondQuote + 1, L"\"", L'^'); TempSpot = FindFirstCharacter(TempSpot + 1, L"|", L'^'); continue; } @@ -1344,9 +1302,9 @@ StripUnreplacedEnvironmentVariables( CHAR16 *CurrentLocator; for (CurrentLocator = CmdLine ; CurrentLocator != NULL ; ) { - FirstQuote = FindNextInstance(CurrentLocator, L"\"", TRUE); - FirstPercent = FindNextInstance(CurrentLocator, L"%", TRUE); - SecondPercent = FirstPercent!=NULL?FindNextInstance(FirstPercent+1, L"%", TRUE):NULL; + FirstQuote = FindFirstCharacter(CurrentLocator, L"\"", L'^'); + FirstPercent = FindFirstCharacter(CurrentLocator, L"%", L'^'); + SecondPercent = FirstPercent!=NULL?FindFirstCharacter(FirstPercent+1, L"%", L'^'):NULL; if (FirstPercent == NULL || SecondPercent == NULL) { // // If we ever dont have 2 % we are done. @@ -1355,11 +1313,10 @@ StripUnreplacedEnvironmentVariables( } if (FirstQuote!= NULL && FirstQuote < FirstPercent) { - SecondQuote = FindNextInstance(FirstQuote+1, L"\"", TRUE); + SecondQuote = FindFirstCharacter(FirstQuote+1, L"\"", L'^'); // // Quote is first found // - if (SecondQuote < FirstPercent) { // // restart after the pair of "