diff options
author | Jan Vrany <jan.vrany@fit.cvut.cz> | 2019-05-17 10:58:23 +0100 |
---|---|---|
committer | Jan Vrany <jan.vrany@fit.cvut.cz> | 2019-05-17 10:58:23 +0100 |
commit | 6e035501e15e72398fcd9db88c97dd30e585a9ae (patch) | |
tree | 6613a2f7386b73461c6887ae1b9dd28b57229a6d /gdb/cli | |
parent | 7d0e2ecedef69de0a242ac49a475f6a3968d4476 (diff) | |
download | gdb-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.c | 29 |
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, "e_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, "e_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) |