aboutsummaryrefslogtreecommitdiff
path: root/gdb/cli
diff options
context:
space:
mode:
authorJan Vrany <jan.vrany@fit.cvut.cz>2019-05-17 10:58:23 +0100
committerJan Vrany <jan.vrany@fit.cvut.cz>2019-05-17 10:58:23 +0100
commit6e035501e15e72398fcd9db88c97dd30e585a9ae (patch)
tree6613a2f7386b73461c6887ae1b9dd28b57229a6d /gdb/cli
parent7d0e2ecedef69de0a242ac49a475f6a3968d4476 (diff)
downloadgdb-6e035501e15e72398fcd9db88c97dd30e585a9ae.zip
gdb-6e035501e15e72398fcd9db88c97dd30e585a9ae.tar.gz
gdb-6e035501e15e72398fcd9db88c97dd30e585a9ae.tar.bz2
MI: extract command completion logic from complete_command()
Extract completion logic from CLI complete_command() into a new helper function complete(). gdb/Changelog: * completer.h (complete): New function. * completer.c (complete): Likewise. * cli/cli-cmds.c: (complete_command): Update to use new complete() function defined in completer.h.
Diffstat (limited to 'gdb/cli')
-rw-r--r--gdb/cli/cli-cmds.c29
1 files changed, 1 insertions, 28 deletions
diff --git a/gdb/cli/cli-cmds.c b/gdb/cli/cli-cmds.c
index 3d8e238..332078b 100644
--- a/gdb/cli/cli-cmds.c
+++ b/gdb/cli/cli-cmds.c
@@ -243,40 +243,13 @@ complete_command (const char *arg, int from_tty)
if (arg == NULL)
arg = "";
- completion_tracker tracker_handle_brkchars;
- completion_tracker tracker_handle_completions;
- completion_tracker *tracker;
-
int quote_char = '\0';
const char *word;
- try
- {
- word = completion_find_completion_word (tracker_handle_brkchars,
- arg, &quote_char);
-
- /* Completers that provide a custom word point in the
- handle_brkchars phase also compute their completions then.
- Completers that leave the completion word handling to readline
- must be called twice. */
- if (tracker_handle_brkchars.use_custom_word_point ())
- tracker = &tracker_handle_brkchars;
- else
- {
- complete_line (tracker_handle_completions, word, arg, strlen (arg));
- tracker = &tracker_handle_completions;
- }
- }
- catch (const gdb_exception &ex)
- {
- return;
- }
+ completion_result result = complete (arg, &word, &quote_char);
std::string arg_prefix (arg, word - arg);
- completion_result result
- = tracker->build_completion_result (word, word - arg, strlen (arg));
-
if (result.number_matches != 0)
{
if (result.number_matches == 1)