summaryrefslogtreecommitdiffstats
path: root/lldb/source/Interpreter/CommandInterpreter.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'lldb/source/Interpreter/CommandInterpreter.cpp')
-rw-r--r--lldb/source/Interpreter/CommandInterpreter.cpp101
1 files changed, 3 insertions, 98 deletions
diff --git a/lldb/source/Interpreter/CommandInterpreter.cpp b/lldb/source/Interpreter/CommandInterpreter.cpp
index 6102170e72e..ec43fd6fabd 100644
--- a/lldb/source/Interpreter/CommandInterpreter.cpp
+++ b/lldb/source/Interpreter/CommandInterpreter.cpp
@@ -97,100 +97,6 @@ enum
eSpaceReplPrompts = 3
};
-CommandAlias::CommandAlias (lldb::CommandObjectSP cmd_sp,
- OptionArgVectorSP args_sp) :
- m_underlying_command_sp(cmd_sp),
- m_option_args_sp(args_sp)
-{
-}
-
-void
-CommandAlias::GetAliasHelp (StreamString &help_string)
-{
- const char* command_name = m_underlying_command_sp->GetCommandName();
- help_string.Printf ("'%s", command_name);
-
- if (m_option_args_sp)
- {
- OptionArgVector *options = m_option_args_sp.get();
- for (size_t i = 0; i < options->size(); ++i)
- {
- OptionArgPair cur_option = (*options)[i];
- std::string opt = cur_option.first;
- OptionArgValue value_pair = cur_option.second;
- std::string value = value_pair.second;
- if (opt.compare("<argument>") == 0)
- {
- help_string.Printf (" %s", value.c_str());
- }
- else
- {
- help_string.Printf (" %s", opt.c_str());
- if ((value.compare ("<no-argument>") != 0)
- && (value.compare ("<need-argument") != 0))
- {
- help_string.Printf (" %s", value.c_str());
- }
- }
- }
- }
-
- help_string.Printf ("'");
-}
-
-bool
-CommandAlias::ProcessAliasOptionsArgs (lldb::CommandObjectSP &cmd_obj_sp,
- const char *options_args,
- OptionArgVectorSP &option_arg_vector_sp)
-{
- bool success = true;
- OptionArgVector *option_arg_vector = option_arg_vector_sp.get();
-
- if (!options_args || (strlen (options_args) < 1))
- return true;
-
- std::string options_string (options_args);
- Args args (options_args);
- CommandReturnObject result;
- // Check to see if the command being aliased can take any command options.
- Options *options = cmd_obj_sp->GetOptions ();
- if (options)
- {
- // See if any options were specified as part of the alias; if so, handle them appropriately.
- options->NotifyOptionParsingStarting ();
- args.Unshift ("dummy_arg");
- args.ParseAliasOptions (*options, result, option_arg_vector, options_string);
- args.Shift ();
- if (result.Succeeded())
- options->VerifyPartialOptions (result);
- if (!result.Succeeded() && result.GetStatus() != lldb::eReturnStatusStarted)
- {
- result.AppendError ("Unable to create requested alias.\n");
- return false;
- }
- }
-
- if (!options_string.empty())
- {
- if (cmd_obj_sp->WantsRawCommandString ())
- option_arg_vector->push_back (OptionArgPair ("<argument>",
- OptionArgValue (-1,
- options_string)));
- else
- {
- const size_t argc = args.GetArgumentCount();
- for (size_t i = 0; i < argc; ++i)
- if (strcmp (args.GetArgumentAtIndex (i), "") != 0)
- option_arg_vector->push_back
- (OptionArgPair ("<argument>",
- OptionArgValue (-1,
- std::string (args.GetArgumentAtIndex (i)))));
- }
- }
-
- return success;
-}
-
ConstString &
CommandInterpreter::GetStaticBroadcasterClass ()
{
@@ -1151,10 +1057,9 @@ CommandInterpreter::AddAlias (const char *alias_name,
if (command_obj_sp.get())
assert((this == &command_obj_sp->GetCommandInterpreter()) && "tried to add a CommandObject from a different interpreter");
- OptionArgVectorSP args_sp(new OptionArgVector);
- if (CommandAlias::ProcessAliasOptionsArgs(command_obj_sp, args_string, args_sp))
+ if (auto cmd_alias = CommandAlias::GetCommandAlias(command_obj_sp, args_string))
{
- m_alias_dict[alias_name] = CommandAlias::UniquePointer(new CommandAlias(command_obj_sp,args_sp));
+ m_alias_dict[alias_name] = std::move(cmd_alias);
return true;
}
return false;
@@ -1243,7 +1148,7 @@ CommandInterpreter::GetHelp (CommandReturnObject &result,
StreamString translation_and_help;
std::string entry_name = alias_pos->first;
std::string second_entry = alias_pos->second->GetUnderlyingCommand()->GetCommandName();
- alias_pos->second->GetAliasHelp(sstr);
+ alias_pos->second->GetAliasExpansion(sstr);
translation_and_help.Printf ("(%s) %s", sstr.GetData(), alias_pos->second->GetUnderlyingCommand()->GetHelp());
OutputFormattedHelpText (result.GetOutputStream(), alias_pos->first.c_str(), "--",
OpenPOWER on IntegriCloud