diff options
author | Enrico Granata <egranata@apple.com> | 2016-03-14 19:00:21 +0000 |
---|---|---|
committer | Enrico Granata <egranata@apple.com> | 2016-03-14 19:00:21 +0000 |
commit | 3e271af415abaed8d988990dd49b55eb6a95c81b (patch) | |
tree | 32f6b68d3a146abac67e8ef6d91885f2176956ff /lldb/source/Interpreter/CommandAlias.cpp | |
parent | 5af4d20372e968e026305d826c216cd3839bc8dd (diff) | |
download | llvm-3e271af415abaed8d988990dd49b55eb6a95c81b.zip llvm-3e271af415abaed8d988990dd49b55eb6a95c81b.tar.gz llvm-3e271af415abaed8d988990dd49b55eb6a95c81b.tar.bz2 |
More of the alias refactoring work! CommandAlias is now a CommandObject
llvm-svn: 263468
Diffstat (limited to 'lldb/source/Interpreter/CommandAlias.cpp')
-rw-r--r-- | lldb/source/Interpreter/CommandAlias.cpp | 52 |
1 files changed, 40 insertions, 12 deletions
diff --git a/lldb/source/Interpreter/CommandAlias.cpp b/lldb/source/Interpreter/CommandAlias.cpp index 10dc84a2..ffdb3e9 100644 --- a/lldb/source/Interpreter/CommandAlias.cpp +++ b/lldb/source/Interpreter/CommandAlias.cpp @@ -9,6 +9,8 @@ #include "lldb/Interpreter/CommandAlias.h" +#include "llvm/Support/ErrorHandling.h" + #include "lldb/Core/StreamString.h" #include "lldb/Interpreter/CommandObject.h" #include "lldb/Interpreter/CommandReturnObject.h" @@ -70,22 +72,48 @@ ProcessAliasOptionsArgs (lldb::CommandObjectSP &cmd_obj_sp, return success; } -CommandAlias::UniquePointer -CommandAlias::GetCommandAlias (lldb::CommandObjectSP cmd_sp, - const char *options_args) +CommandAlias::CommandAlias (CommandInterpreter &interpreter, + lldb::CommandObjectSP cmd_sp, + const char *options_args, + const char *name, + const char *help, + const char *syntax, + uint32_t flags) : + CommandObject(interpreter, + name, + help, + syntax, + flags), +m_underlying_command_sp(), +m_option_args_sp(new OptionArgVector) +{ + if (ProcessAliasOptionsArgs(cmd_sp, options_args, m_option_args_sp)) + { + m_underlying_command_sp = cmd_sp; + if (!help || !help[0]) + { + StreamString sstr; + StreamString translation_and_help; + GetAliasExpansion(sstr); + + translation_and_help.Printf ("(%s) %s", sstr.GetData(), GetUnderlyingCommand()->GetHelp()); + SetHelp(translation_and_help.GetData()); + } + } +} + +bool +CommandAlias::WantsRawCommandString() { - CommandAlias::UniquePointer ret_val(nullptr); - OptionArgVectorSP opt_args_sp(new OptionArgVector); - if (ProcessAliasOptionsArgs(cmd_sp, options_args, opt_args_sp)) - ret_val.reset(new CommandAlias(cmd_sp, opt_args_sp)); - return ret_val; + if (IsValid()) + return m_underlying_command_sp->WantsRawCommandString(); + return false; } -CommandAlias::CommandAlias (lldb::CommandObjectSP cmd_sp, - OptionArgVectorSP args_sp) : -m_underlying_command_sp(cmd_sp), -m_option_args_sp(args_sp) +bool +CommandAlias::Execute(const char *args_string, CommandReturnObject &result) { + llvm_unreachable("CommandAlias::Execute is not to be called"); } void |