From 1d18ebf62a4925866d3bff3cd5708a46994a8740 Mon Sep 17 00:00:00 2001 From: Jim Ingham Date: Wed, 26 Oct 2011 19:32:01 +0000 Subject: [PATCH] When completing "help foo bar" if "foo" is not a real command, don't ask its NULL command object to complete the line. llvm-svn: 143047 --- lldb/source/Commands/CommandObjectHelp.cpp | 35 ++++++++++++++++------ 1 file changed, 26 insertions(+), 9 deletions(-) diff --git a/lldb/source/Commands/CommandObjectHelp.cpp b/lldb/source/Commands/CommandObjectHelp.cpp index dd68f7cd4f48..e735c662bac8 100644 --- a/lldb/source/Commands/CommandObjectHelp.cpp +++ b/lldb/source/Commands/CommandObjectHelp.cpp @@ -263,14 +263,31 @@ CommandObjectHelp::HandleCompletion else { CommandObject *cmd_obj = m_interpreter.GetCommandObject (input.GetArgumentAtIndex(0)); - input.Shift(); - cursor_index--; - return cmd_obj->HandleCompletion (input, - cursor_index, - cursor_char_position, - match_start_point, - max_return_elements, - word_complete, - matches); + + // The command that they are getting help on might be ambiguous, in which case we should complete that, + // otherwise complete with the command the user is getting help on... + + if (cmd_obj) + { + input.Shift(); + cursor_index--; + return cmd_obj->HandleCompletion (input, + cursor_index, + cursor_char_position, + match_start_point, + max_return_elements, + word_complete, + matches); + } + else + { + return m_interpreter.HandleCompletionMatches (input, + cursor_index, + cursor_char_position, + match_start_point, + max_return_elements, + word_complete, + matches); + } } }