public:
struct CommandAlias
{
- lldb::CommandObjectSP m_underlying_command_sp;
- OptionArgVectorSP m_option_args_sp;
+ lldb::CommandObjectSP m_underlying_command_sp = nullptr;
+ OptionArgVectorSP m_option_args_sp = nullptr;
+
+ CommandAlias (lldb::CommandObjectSP cmd_sp = nullptr,
+ OptionArgVectorSP args_sp = nullptr);
static bool
ProcessAliasOptionsArgs (lldb::CommandObjectSP &cmd_obj_sp,
const char *options_args,
OptionArgVectorSP &option_arg_vector_sp);
+
+ bool
+ IsValid ()
+ {
+ return m_underlying_command_sp && m_option_args_sp;
+ }
+
+ explicit operator bool ()
+ {
+ return IsValid();
+ }
};
typedef std::map<std::string, CommandAlias> CommandAliasMap;
m_user_dict.clear();
}
- OptionArgVectorSP
- GetAliasOptions (const char *alias_name);
+ CommandAlias
+ GetAlias (const char *alias_name);
CommandObject *
BuildAliasResult (const char *alias_name,
eSpaceReplPrompts = 3
};
+CommandInterpreter::CommandAlias::CommandAlias (lldb::CommandObjectSP cmd_sp,
+ OptionArgVectorSP args_sp) :
+ m_underlying_command_sp(cmd_sp),
+ m_option_args_sp(args_sp)
+{
+}
+
bool
CommandInterpreter::CommandAlias::ProcessAliasOptionsArgs (lldb::CommandObjectSP &cmd_obj_sp,
const char *options_args,
CommandInterpreter::GetAliasHelp (const char *alias_name, const char *command_name, StreamString &help_string)
{
help_string.Printf ("'%s", command_name);
- OptionArgVectorSP option_arg_vector_sp = GetAliasOptions (alias_name);
+ OptionArgVectorSP option_arg_vector_sp = GetAlias(alias_name).m_option_args_sp;
if (option_arg_vector_sp)
{
cmd_args.Unshift (alias_name);
result_str.Printf ("%s", alias_cmd_obj->GetCommandName ());
- OptionArgVectorSP option_arg_vector_sp = GetAliasOptions (alias_name);
+ OptionArgVectorSP option_arg_vector_sp = GetAlias(alias_name).m_option_args_sp;
if (option_arg_vector_sp.get())
{
return confirm->GetResponse();
}
-OptionArgVectorSP
-CommandInterpreter::GetAliasOptions (const char *alias_name)
+CommandInterpreter::CommandAlias
+CommandInterpreter::GetAlias (const char *alias_name)
{
OptionArgVectorSP ret_val;
auto pos = m_alias_dict.find(alias);
if (pos != m_alias_dict.end())
- ret_val = pos->second.m_option_args_sp;
+ return pos->second;
- return ret_val;
+ return CommandInterpreter::CommandAlias();
}
bool
std::string &raw_input_string,
CommandReturnObject &result)
{
- OptionArgVectorSP option_arg_vector_sp = GetAliasOptions (alias_name);
+ OptionArgVectorSP option_arg_vector_sp = GetAlias(alias_name).m_option_args_sp;
bool wants_raw_input = alias_cmd_obj->WantsRawCommandString();