#include "gdb_vecs.h"
#include "common/scoped_restore.h"
+struct completion_tracker;
+
/* This file defines the public interface for any code wanting to
create commands. */
extern void set_cmd_sfunc (struct cmd_list_element *cmd,
cmd_sfunc_ftype *sfunc);
-/* A completion routine. Return a list of possible completions.
+/* A completion routine. Add possible completions to tracker.
TEXT is the text beyond what was matched for the command itself
(leading whitespace is skipped). It stops where we are supposed to
relative to this position. For example, suppose TEXT is "foo" and
we want to complete to "foobar". If WORD is "oo", return "oobar";
if WORD is "baz/foo", return "baz/foobar". */
-typedef VEC (char_ptr) *completer_ftype (struct cmd_list_element *,
- const char *text, const char *word);
+typedef void completer_ftype (struct cmd_list_element *,
+ completion_tracker &tracker,
+ const char *text, const char *word);
/* Same, but for set_cmd_completer_handle_brkchars. */
typedef void completer_handle_brkchars_ftype (struct cmd_list_element *,
+ completion_tracker &tracker,
const char *text, const char *word);
extern void set_cmd_completer (struct cmd_list_element *, completer_ftype *);
extern struct cmd_list_element *add_info_alias (const char *, const char *,
int);
-extern VEC (char_ptr) *complete_on_cmdlist (struct cmd_list_element *,
- const char *, const char *, int);
+extern void complete_on_cmdlist (struct cmd_list_element *,
+ completion_tracker &tracker,
+ const char *, const char *, int);
-extern VEC (char_ptr) *complete_on_enum (const char *const *enumlist,
- const char *, const char *);
+extern void complete_on_enum (completion_tracker &tracker,
+ const char *const *enumlist,
+ const char *, const char *);
/* Functions that implement commands about CLI commands. */