forked from OSchip/llvm-project
Fix an issue with nested aliases where the help system wouldn't correctly track the fact that an alias is an alias to a dash-dash alias
(and I hope I typed the word 'alias' enough times in this commit message :-) llvm-svn: 264468
This commit is contained in:
parent
d0ac31a706
commit
3c110dd6b4
|
@ -106,6 +106,10 @@ public:
|
|||
std::pair<lldb::CommandObjectSP, OptionArgVectorSP>
|
||||
Desugar ();
|
||||
|
||||
protected:
|
||||
bool
|
||||
IsNestedAlias ();
|
||||
|
||||
private:
|
||||
lldb::CommandObjectSP m_underlying_command_sp;
|
||||
std::string m_option_string;
|
||||
|
|
|
@ -46,6 +46,8 @@ class NestedAliasTestCase(TestBase):
|
|||
def cleanup():
|
||||
self.runCmd('command unalias read', check=False)
|
||||
self.runCmd('command unalias rd', check=False)
|
||||
self.runCmd('command unalias fo', check=False)
|
||||
self.runCmd('command unalias foself', check=False)
|
||||
|
||||
# Execute the cleanup function during test case tear down.
|
||||
self.addTearDownHook(cleanup)
|
||||
|
@ -58,3 +60,9 @@ class NestedAliasTestCase(TestBase):
|
|||
|
||||
self.expect('memory read -f A -c 3 `&my_ptr[0]`', substrs=['deadfeed'], matching=False)
|
||||
self.expect('rd `&my_ptr[0]`', substrs=['deadfeed'], matching=False)
|
||||
|
||||
self.runCmd('command alias fo frame variable -O --')
|
||||
self.runCmd('command alias foself fo self')
|
||||
|
||||
self.expect('help foself', substrs=['--show-all-children', '--raw-output'], matching=False)
|
||||
self.expect('help foself', substrs=['Show frame variables.'], matching=True)
|
||||
|
|
|
@ -236,11 +236,22 @@ CommandAlias::IsDashDashCommand ()
|
|||
break;
|
||||
}
|
||||
}
|
||||
// if this is a nested alias, it may be adding arguments on top of an already dash-dash alias
|
||||
if ((m_is_dashdash_alias == eLazyBoolNo) && IsNestedAlias())
|
||||
m_is_dashdash_alias = (GetUnderlyingCommand()->IsDashDashCommand() ? eLazyBoolYes : eLazyBoolNo);
|
||||
}
|
||||
}
|
||||
return (m_is_dashdash_alias == eLazyBoolYes);
|
||||
}
|
||||
|
||||
bool
|
||||
CommandAlias::IsNestedAlias ()
|
||||
{
|
||||
if (GetUnderlyingCommand())
|
||||
return GetUnderlyingCommand()->IsAlias();
|
||||
return false;
|
||||
}
|
||||
|
||||
std::pair<lldb::CommandObjectSP, OptionArgVectorSP>
|
||||
CommandAlias::Desugar ()
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue