diff options
author | Enrico Granata <egranata@apple.com> | 2016-03-08 05:37:15 +0000 |
---|---|---|
committer | Enrico Granata <egranata@apple.com> | 2016-03-08 05:37:15 +0000 |
commit | 212130ac4d517379afdc1b1eb3b861fd98f304f3 (patch) | |
tree | b9f25e35e7b6c1f9ee1f47bc7e3d926081aff0ad /lldb/source/Commands/CommandObjectCommands.cpp | |
parent | 3f9f09265b59904a9819c4f7830941ff5918b736 (diff) | |
download | bcm5719-llvm-212130ac4d517379afdc1b1eb3b861fd98f304f3.tar.gz bcm5719-llvm-212130ac4d517379afdc1b1eb3b861fd98f304f3.zip |
A few more improvements on the way to the command alias refactoring
- move alias help generation to CommandAlias, out of CommandInterpreter
- make alias creation use argument strings instead of OptionArgVectorSP; the former is a more reasonable currency than the latter
- remove m_is_alias from CommandObject, it wasn't actually being used
llvm-svn: 262912
Diffstat (limited to 'lldb/source/Commands/CommandObjectCommands.cpp')
-rw-r--r-- | lldb/source/Commands/CommandObjectCommands.cpp | 71 |
1 files changed, 34 insertions, 37 deletions
diff --git a/lldb/source/Commands/CommandObjectCommands.cpp b/lldb/source/Commands/CommandObjectCommands.cpp index a32c3d9a627..09008756cfe 100644 --- a/lldb/source/Commands/CommandObjectCommands.cpp +++ b/lldb/source/Commands/CommandObjectCommands.cpp @@ -621,33 +621,31 @@ protected: OptionArgVectorSP option_arg_vector_sp = OptionArgVectorSP (new OptionArgVector); - CommandObjectSP cmd_obj_sp = m_interpreter.GetCommandSPExact (cmd_obj.GetCommandName(), false); - - if (!CommandInterpreter::CommandAlias::ProcessAliasOptionsArgs (cmd_obj_sp, raw_command_string.c_str(), option_arg_vector_sp)) - { - result.AppendError ("Unable to create requested alias.\n"); - result.SetStatus (eReturnStatusFailed); - return false; - } - - // Create the alias - if (m_interpreter.AliasExists (alias_command.c_str()) - || m_interpreter.UserCommandExists (alias_command.c_str())) - { - result.AppendWarningWithFormat ("Overwriting existing definition for '%s'.\n", - alias_command.c_str()); - } - - if (cmd_obj_sp) + if (CommandObjectSP cmd_obj_sp = m_interpreter.GetCommandSPExact (cmd_obj.GetCommandName(), false)) { - m_interpreter.AddAlias (alias_command.c_str(), cmd_obj_sp, option_arg_vector_sp); - result.SetStatus (eReturnStatusSuccessFinishNoResult); + if (m_interpreter.AliasExists (alias_command.c_str()) + || m_interpreter.UserCommandExists (alias_command.c_str())) + { + result.AppendWarningWithFormat ("Overwriting existing definition for '%s'.\n", + alias_command.c_str()); + } + if (m_interpreter.AddAlias (alias_command.c_str(), cmd_obj_sp, raw_command_string.c_str())) + { + result.SetStatus (eReturnStatusSuccessFinishNoResult); + } + else + { + result.AppendError ("Unable to create requested alias.\n"); + result.SetStatus (eReturnStatusFailed); + } + } else { result.AppendError ("Unable to create requested alias.\n"); result.SetStatus (eReturnStatusFailed); } + return result.Succeeded (); } @@ -715,37 +713,36 @@ protected: // Verify & handle any options/arguments passed to the alias command + std::string args_string; + if (args.GetArgumentCount () > 0) { CommandObjectSP tmp_sp = m_interpreter.GetCommandSPExact (cmd_obj->GetCommandName(), false); if (use_subcommand) tmp_sp = m_interpreter.GetCommandSPExact (sub_cmd_obj->GetCommandName(), false); - std::string args_string; args.GetCommandString (args_string); - - if (!CommandInterpreter::CommandAlias::ProcessAliasOptionsArgs (tmp_sp, args_string.c_str(), option_arg_vector_sp)) - { - result.AppendError ("Unable to create requested alias.\n"); - result.SetStatus (eReturnStatusFailed); - return false; - } } - - // Create the alias. - + if (m_interpreter.AliasExists (alias_command.c_str()) || m_interpreter.UserCommandExists (alias_command.c_str())) { - result.AppendWarningWithFormat ("Overwriting existing definition for '%s'.\n", + result.AppendWarningWithFormat ("Overwriting existing definition for '%s'.\n", alias_command.c_str()); } - - if (use_subcommand) - m_interpreter.AddAlias (alias_command.c_str(), subcommand_obj_sp, option_arg_vector_sp); + + if (m_interpreter.AddAlias(alias_command.c_str(), + use_subcommand ? subcommand_obj_sp : command_obj_sp, + args_string.c_str())) + { + result.SetStatus (eReturnStatusSuccessFinishNoResult); + } else - m_interpreter.AddAlias (alias_command.c_str(), command_obj_sp, option_arg_vector_sp); - result.SetStatus (eReturnStatusSuccessFinishNoResult); + { + result.AppendError ("Unable to create requested alias.\n"); + result.SetStatus (eReturnStatusFailed); + return false; + } } else { |