diff options
Diffstat (limited to 'lldb/source/Interpreter/CommandInterpreter.cpp')
-rw-r--r-- | lldb/source/Interpreter/CommandInterpreter.cpp | 101 |
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(), "--", |