summaryrefslogtreecommitdiffstats
path: root/lldb/tools/lldb-mi/MICmdArgContext.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'lldb/tools/lldb-mi/MICmdArgContext.cpp')
-rw-r--r--lldb/tools/lldb-mi/MICmdArgContext.cpp281
1 files changed, 134 insertions, 147 deletions
diff --git a/lldb/tools/lldb-mi/MICmdArgContext.cpp b/lldb/tools/lldb-mi/MICmdArgContext.cpp
index 8ce5bfb3c88..57f682bea22 100644
--- a/lldb/tools/lldb-mi/MICmdArgContext.cpp
+++ b/lldb/tools/lldb-mi/MICmdArgContext.cpp
@@ -10,68 +10,68 @@
// In-house headers:
#include "MICmdArgContext.h"
-//++ ------------------------------------------------------------------------------------
+//++
+//------------------------------------------------------------------------------------
// Details: CMICmdArgContext constructor.
// Type: Method.
// Args: None.
// Return: None.
// Throws: None.
//--
-CMICmdArgContext::CMICmdArgContext()
-{
-}
+CMICmdArgContext::CMICmdArgContext() {}
-//++ ------------------------------------------------------------------------------------
+//++
+//------------------------------------------------------------------------------------
// Details: CMICmdArgContext constructor.
// Type: Method.
-// Args: vrCmdLineArgsRaw - (R) The text description of the arguments options.
+// Args: vrCmdLineArgsRaw - (R) The text description of the arguments
+// options.
// Return: None.
// Throws: None.
//--
CMICmdArgContext::CMICmdArgContext(const CMIUtilString &vrCmdLineArgsRaw)
- : m_strCmdArgsAndOptions(vrCmdLineArgsRaw)
-{
-}
+ : m_strCmdArgsAndOptions(vrCmdLineArgsRaw) {}
-//++ ------------------------------------------------------------------------------------
+//++
+//------------------------------------------------------------------------------------
// Details: CMICmdArgContext destructor.
// Type: Method.
// Args: None.
// Return: None.
// Throws: None.
//--
-CMICmdArgContext::~CMICmdArgContext()
-{
-}
+CMICmdArgContext::~CMICmdArgContext() {}
-//++ ------------------------------------------------------------------------------------
-// Details: Retrieve the remainder of the command's argument options left to parse.
+//++
+//------------------------------------------------------------------------------------
+// Details: Retrieve the remainder of the command's argument options left to
+// parse.
// Type: Method.
// Args: None.
// Return: CMIUtilString & - Argument options text.
// Throws: None.
//--
-const CMIUtilString &
-CMICmdArgContext::GetArgsLeftToParse() const
-{
- return m_strCmdArgsAndOptions;
+const CMIUtilString &CMICmdArgContext::GetArgsLeftToParse() const {
+ return m_strCmdArgsAndOptions;
}
-//++ ------------------------------------------------------------------------------------
+//++
+//------------------------------------------------------------------------------------
// Details: Ask if this arguments string has any arguments.
// Type: Method.
// Args: None.
-// Return: bool - True = Has one or more arguments present, false = no arguments.
+// Return: bool - True = Has one or more arguments present, false = no
+// arguments.
// Throws: None.
//--
-bool
-CMICmdArgContext::IsEmpty() const
-{
- return m_strCmdArgsAndOptions.empty();
+bool CMICmdArgContext::IsEmpty() const {
+ return m_strCmdArgsAndOptions.empty();
}
-//++ ------------------------------------------------------------------------------------
-// Details: Remove the argument from the options text and any space after the argument
+//++
+//------------------------------------------------------------------------------------
+// Details: Remove the argument from the options text and any space after the
+// argument
// if applicable.
// Type: Method.
// Args: vArg - (R) The name of the argument.
@@ -79,167 +79,154 @@ CMICmdArgContext::IsEmpty() const
// MIstatus::failure - Functional failed.
// Throws: None.
//--
-bool
-CMICmdArgContext::RemoveArg(const CMIUtilString &vArg)
-{
- if (vArg.empty())
- return MIstatus::success;
-
- const size_t nLen = vArg.length();
- const size_t nLenCntxt = m_strCmdArgsAndOptions.length();
- if (nLen > nLenCntxt)
- return MIstatus::failure;
-
- size_t nExtraSpace = 0;
- size_t nPos = m_strCmdArgsAndOptions.find(vArg);
- while (1)
- {
- if (nPos == std::string::npos)
- return MIstatus::success;
-
- bool bPass1 = false;
- if (nPos != 0)
- {
- if (m_strCmdArgsAndOptions[nPos - 1] == ' ')
- bPass1 = true;
- }
- else
- bPass1 = true;
-
- const size_t nEnd = nPos + nLen;
-
- if (bPass1)
- {
- bool bPass2 = false;
- if (nEnd < nLenCntxt)
- {
- if (m_strCmdArgsAndOptions[nEnd] == ' ')
- {
- bPass2 = true;
- nExtraSpace = 1;
- }
- }
- else
- bPass2 = true;
-
- if (bPass2)
- break;
+bool CMICmdArgContext::RemoveArg(const CMIUtilString &vArg) {
+ if (vArg.empty())
+ return MIstatus::success;
+
+ const size_t nLen = vArg.length();
+ const size_t nLenCntxt = m_strCmdArgsAndOptions.length();
+ if (nLen > nLenCntxt)
+ return MIstatus::failure;
+
+ size_t nExtraSpace = 0;
+ size_t nPos = m_strCmdArgsAndOptions.find(vArg);
+ while (1) {
+ if (nPos == std::string::npos)
+ return MIstatus::success;
+
+ bool bPass1 = false;
+ if (nPos != 0) {
+ if (m_strCmdArgsAndOptions[nPos - 1] == ' ')
+ bPass1 = true;
+ } else
+ bPass1 = true;
+
+ const size_t nEnd = nPos + nLen;
+
+ if (bPass1) {
+ bool bPass2 = false;
+ if (nEnd < nLenCntxt) {
+ if (m_strCmdArgsAndOptions[nEnd] == ' ') {
+ bPass2 = true;
+ nExtraSpace = 1;
}
+ } else
+ bPass2 = true;
- nPos = m_strCmdArgsAndOptions.find(vArg, nEnd);
+ if (bPass2)
+ break;
}
- const size_t nPosEnd = nLen + nExtraSpace;
- m_strCmdArgsAndOptions = m_strCmdArgsAndOptions.replace(nPos, nPosEnd, "");
- m_strCmdArgsAndOptions = m_strCmdArgsAndOptions.Trim();
+ nPos = m_strCmdArgsAndOptions.find(vArg, nEnd);
+ }
- return MIstatus::success;
+ const size_t nPosEnd = nLen + nExtraSpace;
+ m_strCmdArgsAndOptions = m_strCmdArgsAndOptions.replace(nPos, nPosEnd, "");
+ m_strCmdArgsAndOptions = m_strCmdArgsAndOptions.Trim();
+
+ return MIstatus::success;
}
-//++ ------------------------------------------------------------------------------------
-// Details: Remove the argument at the Nth word position along in the context string.
-// Any space after the argument is removed if applicable. A search is not
-// performed as there may be more than one vArg with the same 'name' in the
+//++
+//------------------------------------------------------------------------------------
+// Details: Remove the argument at the Nth word position along in the context
+// string.
+// Any space after the argument is removed if applicable. A search is
+// not
+// performed as there may be more than one vArg with the same 'name' in
+// the
// context string.
// Type: Method.
// Args: vArg - (R) The name of the argument.
-// nArgIndex - (R) The word count position to which to remove the vArg word.
+// nArgIndex - (R) The word count position to which to remove the
+// vArg word.
// Return: MIstatus::success - Functional succeeded.
// MIstatus::failure - Functional failed.
// Throws: None.
//--
-bool
-CMICmdArgContext::RemoveArgAtPos(const CMIUtilString &vArg, size_t nArgIndex)
-{
- size_t nWordIndex = 0;
- CMIUtilString strBuildContextUp;
- const CMIUtilString::VecString_t vecWords(GetArgs());
- const bool bSpaceRequired(GetNumberArgsPresent() > 2);
-
- CMIUtilString::VecString_t::const_iterator it = vecWords.begin();
- const CMIUtilString::VecString_t::const_iterator itEnd = vecWords.end();
- while (it != itEnd)
- {
- const CMIUtilString &rWord(*it);
- if (nWordIndex++ != nArgIndex)
- {
- // Single words
- strBuildContextUp += rWord;
- if (bSpaceRequired)
- strBuildContextUp += " ";
- }
- else
- {
- // If quoted loose quoted text
- if (++it != itEnd)
- {
- CMIUtilString words = rWord;
- while (vArg != words)
- {
- if (bSpaceRequired)
- words += " ";
- words += *it;
- if (++it == itEnd)
- break;
- }
- if (it != itEnd)
- --it;
- }
+bool CMICmdArgContext::RemoveArgAtPos(const CMIUtilString &vArg,
+ size_t nArgIndex) {
+ size_t nWordIndex = 0;
+ CMIUtilString strBuildContextUp;
+ const CMIUtilString::VecString_t vecWords(GetArgs());
+ const bool bSpaceRequired(GetNumberArgsPresent() > 2);
+
+ CMIUtilString::VecString_t::const_iterator it = vecWords.begin();
+ const CMIUtilString::VecString_t::const_iterator itEnd = vecWords.end();
+ while (it != itEnd) {
+ const CMIUtilString &rWord(*it);
+ if (nWordIndex++ != nArgIndex) {
+ // Single words
+ strBuildContextUp += rWord;
+ if (bSpaceRequired)
+ strBuildContextUp += " ";
+ } else {
+ // If quoted loose quoted text
+ if (++it != itEnd) {
+ CMIUtilString words = rWord;
+ while (vArg != words) {
+ if (bSpaceRequired)
+ words += " ";
+ words += *it;
+ if (++it == itEnd)
+ break;
}
-
- // Next
if (it != itEnd)
- ++it;
+ --it;
+ }
}
- m_strCmdArgsAndOptions = strBuildContextUp;
- m_strCmdArgsAndOptions = m_strCmdArgsAndOptions.Trim();
+ // Next
+ if (it != itEnd)
+ ++it;
+ }
- return MIstatus::success;
+ m_strCmdArgsAndOptions = strBuildContextUp;
+ m_strCmdArgsAndOptions = m_strCmdArgsAndOptions.Trim();
+
+ return MIstatus::success;
}
-//++ ------------------------------------------------------------------------------------
-// Details: Retrieve number of arguments or options present in the command's option text.
+//++
+//------------------------------------------------------------------------------------
+// Details: Retrieve number of arguments or options present in the command's
+// option text.
// Type: Method.
// Args: None.
// Return: size_t - 0 to n arguments present.
// Throws: None.
//--
-size_t
-CMICmdArgContext::GetNumberArgsPresent() const
-{
- CMIUtilString::VecString_t vecOptions;
- return m_strCmdArgsAndOptions.SplitConsiderQuotes(" ", vecOptions);
+size_t CMICmdArgContext::GetNumberArgsPresent() const {
+ CMIUtilString::VecString_t vecOptions;
+ return m_strCmdArgsAndOptions.SplitConsiderQuotes(" ", vecOptions);
}
-//++ ------------------------------------------------------------------------------------
+//++
+//------------------------------------------------------------------------------------
// Details: Retrieve all the arguments or options remaining in *this context.
// Type: Method.
// Args: None.
// Return: MIUtilString::VecString_t - List of args remaining.
// Throws: None.
//--
-CMIUtilString::VecString_t
-CMICmdArgContext::GetArgs() const
-{
- CMIUtilString::VecString_t vecOptions;
- m_strCmdArgsAndOptions.SplitConsiderQuotes(" ", vecOptions);
- return vecOptions;
+CMIUtilString::VecString_t CMICmdArgContext::GetArgs() const {
+ CMIUtilString::VecString_t vecOptions;
+ m_strCmdArgsAndOptions.SplitConsiderQuotes(" ", vecOptions);
+ return vecOptions;
}
-//++ ------------------------------------------------------------------------------------
+//++
+//------------------------------------------------------------------------------------
// Details: Copy assignment operator.
// Type: Method.
// Args: vOther - (R) The variable to copy from.
// Return: CMIUtilString & - this object.
// Throws: None.
//--
-CMICmdArgContext &CMICmdArgContext::operator=(const CMICmdArgContext &vOther)
-{
- if (this != &vOther)
- {
- m_strCmdArgsAndOptions = vOther.m_strCmdArgsAndOptions;
- }
+CMICmdArgContext &CMICmdArgContext::operator=(const CMICmdArgContext &vOther) {
+ if (this != &vOther) {
+ m_strCmdArgsAndOptions = vOther.m_strCmdArgsAndOptions;
+ }
- return *this;
+ return *this;
}
OpenPOWER on IntegriCloud