summaryrefslogtreecommitdiffstats
path: root/lldb/source/Commands/CommandObjectSettings.cpp
diff options
context:
space:
mode:
authorJohnny Chen <johnny.chen@apple.com>2012-01-23 19:49:28 +0000
committerJohnny Chen <johnny.chen@apple.com>2012-01-23 19:49:28 +0000
commit8cc80b2914da8b5bd2e5c12e0bb7366e0c915fdc (patch)
tree933927cc9f5e7c058afad4b5de2a4ca39167ade1 /lldb/source/Commands/CommandObjectSettings.cpp
parentd28ef9ac46fd030df68232643825375faf6f428f (diff)
downloadbcm5719-llvm-8cc80b2914da8b5bd2e5c12e0bb7366e0c915fdc.tar.gz
bcm5719-llvm-8cc80b2914da8b5bd2e5c12e0bb7366e0c915fdc.zip
Followup check in for http://llvm.org/viewvc/llvm-project?rev=148491&view=rev,
where we changed the CommandObjectSettingsSet object impl to require raw command string. Do the same for CommandObjectSettingsAppend/InsertBefore/InsertAfter classes and add test cases for basic functionalities as well as for variable name completion. llvm-svn: 148719
Diffstat (limited to 'lldb/source/Commands/CommandObjectSettings.cpp')
-rw-r--r--lldb/source/Commands/CommandObjectSettings.cpp87
1 files changed, 45 insertions, 42 deletions
diff --git a/lldb/source/Commands/CommandObjectSettings.cpp b/lldb/source/Commands/CommandObjectSettings.cpp
index b5e328b789c..74fdd503775 100644
--- a/lldb/source/Commands/CommandObjectSettings.cpp
+++ b/lldb/source/Commands/CommandObjectSettings.cpp
@@ -144,12 +144,12 @@ CommandObjectSettingsSet::ExecuteRawCommandString (const char *raw_command, Comm
// Split the raw command into var_name and value pair.
std::string var_name_string = var_name;
llvm::StringRef raw_str(raw_command);
- llvm::StringRef value_str = raw_str.split(var_name_string).second;
- StripLeadingSpaces(value_str);
- std::string value_string = value_str.str();
+ llvm::StringRef var_value_str = raw_str.split(var_name).second;
+ StripLeadingSpaces(var_value_str);
+ std::string var_value_string = var_value_str.str();
if (!m_options.m_reset
- && value_string.empty())
+ && var_value_string.empty())
{
result.AppendError ("'settings set' command requires a valid variable value unless using '--reset' option;"
" No value supplied");
@@ -158,7 +158,7 @@ CommandObjectSettingsSet::ExecuteRawCommandString (const char *raw_command, Comm
else
{
Error err = usc_sp->SetVariable (var_name_string.c_str(),
- value_string.c_str(),
+ var_value_string.c_str(),
eVarSetOperationAssign,
m_options.m_override,
m_interpreter.GetDebugger().GetInstanceName().AsCString());
@@ -835,11 +835,12 @@ CommandObjectSettingsInsertBefore::~CommandObjectSettingsInsertBefore ()
}
bool
-CommandObjectSettingsInsertBefore::Execute (Args& command, CommandReturnObject &result)
+CommandObjectSettingsInsertBefore::ExecuteRawCommandString (const char *raw_command, CommandReturnObject &result)
{
UserSettingsControllerSP usc_sp (Debugger::GetSettingsController ());
- const int argc = command.GetArgumentCount ();
+ Args cmd_args(raw_command);
+ const int argc = cmd_args.GetArgumentCount ();
if (argc < 3)
{
@@ -848,7 +849,7 @@ CommandObjectSettingsInsertBefore::Execute (Args& command, CommandReturnObject &
return false;
}
- const char *var_name = command.GetArgumentAtIndex (0);
+ const char *var_name = cmd_args.GetArgumentAtIndex (0);
std::string var_name_string;
if ((var_name == NULL) || (var_name[0] == '\0'))
{
@@ -858,9 +859,9 @@ CommandObjectSettingsInsertBefore::Execute (Args& command, CommandReturnObject &
}
var_name_string = var_name;
- command.Shift();
+ cmd_args.Shift();
- const char *index_value = command.GetArgumentAtIndex (0);
+ const char *index_value = cmd_args.GetArgumentAtIndex (0);
std::string index_value_string;
if ((index_value == NULL) || (index_value[0] == '\0'))
{
@@ -870,15 +871,15 @@ CommandObjectSettingsInsertBefore::Execute (Args& command, CommandReturnObject &
}
index_value_string = index_value;
- command.Shift();
-
- const char *var_value;
- std::string value_string;
+ cmd_args.Shift();
- command.GetQuotedCommandString (value_string);
- var_value = value_string.c_str();
+ // Split the raw command into var_name, index_value, and value triple.
+ llvm::StringRef raw_str(raw_command);
+ llvm::StringRef var_value_str = raw_str.split(var_name).second.split(index_value).second;
+ StripLeadingSpaces(var_value_str);
+ std::string var_value_string = var_value_str.str();
- if ((var_value == NULL) || (var_value[0] == '\0'))
+ if (var_value_string.empty())
{
result.AppendError ("'settings insert-before' command requires a valid variable value;"
" No value supplied");
@@ -887,7 +888,7 @@ CommandObjectSettingsInsertBefore::Execute (Args& command, CommandReturnObject &
else
{
Error err = usc_sp->SetVariable (var_name_string.c_str(),
- var_value,
+ var_value_string.c_str(),
eVarSetOperationInsertBefore,
true,
m_interpreter.GetDebugger().GetInstanceName().AsCString(),
@@ -981,11 +982,12 @@ CommandObjectSettingsInsertAfter::~CommandObjectSettingsInsertAfter ()
}
bool
-CommandObjectSettingsInsertAfter::Execute (Args& command, CommandReturnObject &result)
+CommandObjectSettingsInsertAfter::ExecuteRawCommandString (const char *raw_command, CommandReturnObject &result)
{
UserSettingsControllerSP usc_sp (Debugger::GetSettingsController ());
- const int argc = command.GetArgumentCount ();
+ Args cmd_args(raw_command);
+ const int argc = cmd_args.GetArgumentCount ();
if (argc < 3)
{
@@ -994,7 +996,7 @@ CommandObjectSettingsInsertAfter::Execute (Args& command, CommandReturnObject &r
return false;
}
- const char *var_name = command.GetArgumentAtIndex (0);
+ const char *var_name = cmd_args.GetArgumentAtIndex (0);
std::string var_name_string;
if ((var_name == NULL) || (var_name[0] == '\0'))
{
@@ -1004,9 +1006,9 @@ CommandObjectSettingsInsertAfter::Execute (Args& command, CommandReturnObject &r
}
var_name_string = var_name;
- command.Shift();
+ cmd_args.Shift();
- const char *index_value = command.GetArgumentAtIndex (0);
+ const char *index_value = cmd_args.GetArgumentAtIndex (0);
std::string index_value_string;
if ((index_value == NULL) || (index_value[0] == '\0'))
{
@@ -1016,15 +1018,15 @@ CommandObjectSettingsInsertAfter::Execute (Args& command, CommandReturnObject &r
}
index_value_string = index_value;
- command.Shift();
-
- const char *var_value;
- std::string value_string;
+ cmd_args.Shift();
- command.GetQuotedCommandString (value_string);
- var_value = value_string.c_str();
+ // Split the raw command into var_name, index_value, and value triple.
+ llvm::StringRef raw_str(raw_command);
+ llvm::StringRef var_value_str = raw_str.split(var_name).second.split(index_value).second;
+ StripLeadingSpaces(var_value_str);
+ std::string var_value_string = var_value_str.str();
- if ((var_value == NULL) || (var_value[0] == '\0'))
+ if (var_value_string.empty())
{
result.AppendError ("'settings insert-after' command requires a valid variable value;"
" No value supplied");
@@ -1033,7 +1035,7 @@ CommandObjectSettingsInsertAfter::Execute (Args& command, CommandReturnObject &r
else
{
Error err = usc_sp->SetVariable (var_name_string.c_str(),
- var_value,
+ var_value_string.c_str(),
eVarSetOperationInsertAfter,
true,
m_interpreter.GetDebugger().GetInstanceName().AsCString(),
@@ -1117,11 +1119,12 @@ CommandObjectSettingsAppend::~CommandObjectSettingsAppend ()
}
bool
-CommandObjectSettingsAppend::Execute (Args& command, CommandReturnObject &result)
+CommandObjectSettingsAppend::ExecuteRawCommandString (const char *raw_command, CommandReturnObject &result)
{
UserSettingsControllerSP usc_sp (Debugger::GetSettingsController ());
- const int argc = command.GetArgumentCount ();
+ Args cmd_args(raw_command);
+ const int argc = cmd_args.GetArgumentCount ();
if (argc < 2)
{
@@ -1130,7 +1133,7 @@ CommandObjectSettingsAppend::Execute (Args& command, CommandReturnObject &result
return false;
}
- const char *var_name = command.GetArgumentAtIndex (0);
+ const char *var_name = cmd_args.GetArgumentAtIndex (0);
std::string var_name_string;
if ((var_name == NULL) || (var_name[0] == '\0'))
{
@@ -1140,15 +1143,15 @@ CommandObjectSettingsAppend::Execute (Args& command, CommandReturnObject &result
}
var_name_string = var_name;
- command.Shift();
-
- const char *var_value;
- std::string value_string;
+ cmd_args.Shift();
- command.GetQuotedCommandString (value_string);
- var_value = value_string.c_str();
+ // Split the raw command into var_name and value pair.
+ llvm::StringRef raw_str(raw_command);
+ llvm::StringRef var_value_str = raw_str.split(var_name).second;
+ StripLeadingSpaces(var_value_str);
+ std::string var_value_string = var_value_str.str();
- if ((var_value == NULL) || (var_value[0] == '\0'))
+ if (var_value_string.empty())
{
result.AppendError ("'settings append' command requires a valid variable value;"
" No value supplied");
@@ -1157,7 +1160,7 @@ CommandObjectSettingsAppend::Execute (Args& command, CommandReturnObject &result
else
{
Error err = usc_sp->SetVariable (var_name_string.c_str(),
- var_value,
+ var_value_string.c_str(),
eVarSetOperationAppend,
true,
m_interpreter.GetDebugger().GetInstanceName().AsCString());
OpenPOWER on IntegriCloud