summaryrefslogtreecommitdiff
path: root/ShellPkg
diff options
context:
space:
mode:
authorJaben Carsey <Jaben.carsey@intel.com>2015-02-03 16:50:12 +0000
committerjcarsey <jcarsey@Edk2>2015-02-03 16:50:12 +0000
commit0a82f7af9b5879216f532438be567f03bce0cd34 (patch)
tree28051136c03211d1c31e685ee8fa4a184c5b6151 /ShellPkg
parent720f553df6c32bf02cfe0c3e31028969c0cceb18 (diff)
downloadedk2-platforms-0a82f7af9b5879216f532438be567f03bce0cd34.tar.xz
ShellPkg: Refactor out a now-redundant function
Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Jaben Carsey <Jaben.carsey@intel.com> Reviewed-by: Joe Peterson <joe.peterson@intel.com> Reviewed-by: Shumin Qiu <shumin.qiu@intel.com> git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@16720 6f19259b-4bc3-4df7-8a09-765794883524
Diffstat (limited to 'ShellPkg')
-rw-r--r--ShellPkg/Application/Shell/Shell.c59
1 files changed, 8 insertions, 51 deletions
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
@@ -101,48 +101,6 @@ TrimSpaces(
}
/**
- 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.
@param[in] BeginPercent pointer to the first percent.
@@ -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 "