forked from OSchip/llvm-project
CommandObjectRegexCommand shouldn't put two commands on the history stack.
It was putting the command the user typed, and then the resolved command in the command history. That caused up-arrow not to work correctly when the regex command was invoked from a Python-command. Plus it's just weird. Differential Revision: https://reviews.llvm.org/D126789
This commit is contained in:
parent
ef8e918261
commit
8cc8b36f24
|
@ -71,11 +71,10 @@ bool CommandObjectRegexCommand::DoExecute(llvm::StringRef command,
|
||||||
// Interpret the new command and return this as the result!
|
// Interpret the new command and return this as the result!
|
||||||
if (m_interpreter.GetExpandRegexAliases())
|
if (m_interpreter.GetExpandRegexAliases())
|
||||||
result.GetOutputStream().Printf("%s\n", new_command->c_str());
|
result.GetOutputStream().Printf("%s\n", new_command->c_str());
|
||||||
// Pass in true for "no context switching". The command that called us
|
// We don't have to pass an override_context here, as the command that
|
||||||
// should have set up the context appropriately, we shouldn't have to
|
// called us should have set up the context appropriately.
|
||||||
// redo that.
|
|
||||||
return m_interpreter.HandleCommand(new_command->c_str(),
|
return m_interpreter.HandleCommand(new_command->c_str(),
|
||||||
eLazyBoolCalculate, result);
|
eLazyBoolNo, result);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
result.SetStatus(eReturnStatusFailed);
|
result.SetStatus(eReturnStatusFailed);
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
"""
|
"""
|
||||||
Make sure the !N and !-N commands work properly.
|
Test some features of "session history" and history recall.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
|
||||||
|
@ -20,9 +20,25 @@ class TestHistoryRecall(TestBase):
|
||||||
|
|
||||||
def test_history_recall(self):
|
def test_history_recall(self):
|
||||||
"""Test the !N and !-N functionality of the command interpreter."""
|
"""Test the !N and !-N functionality of the command interpreter."""
|
||||||
self.sample_test()
|
self.do_bang_N_test()
|
||||||
|
|
||||||
def sample_test(self):
|
def test_regex_history(self):
|
||||||
|
"""Test the regex commands don't add two elements to the history"""
|
||||||
|
self.do_regex_history_test()
|
||||||
|
|
||||||
|
def do_regex_history_test(self):
|
||||||
|
interp = self.dbg.GetCommandInterpreter()
|
||||||
|
result = lldb.SBCommandReturnObject()
|
||||||
|
command = "_regexp-break foo.c:12"
|
||||||
|
self.runCmd(command, msg="Run the regex break command", inHistory = True)
|
||||||
|
interp.HandleCommand("session history", result, True)
|
||||||
|
self.assertTrue(result.Succeeded(), "session history ran successfully")
|
||||||
|
results = result.GetOutput()
|
||||||
|
self.assertIn(command, results, "Recorded the actual command")
|
||||||
|
self.assertNotIn("breakpoint set --file 'foo.c' --line 12", results,
|
||||||
|
"Didn't record the resolved command")
|
||||||
|
|
||||||
|
def do_bang_N_test(self):
|
||||||
interp = self.dbg.GetCommandInterpreter()
|
interp = self.dbg.GetCommandInterpreter()
|
||||||
result = lldb.SBCommandReturnObject()
|
result = lldb.SBCommandReturnObject()
|
||||||
interp.HandleCommand("session history", result, True)
|
interp.HandleCommand("session history", result, True)
|
||||||
|
|
Loading…
Reference in New Issue