[GOLD] Fix powerpc64 optimization of TOC accesses
[deliverable/binutils-gdb.git] / gdb / command.h
index ae200217be03f34a24ba29faa53e9feb2f5dabad..32ee73af62c88f97f3a012a9537581b733e61b7a 100644 (file)
@@ -19,6 +19,9 @@
 #define COMMAND_H 1
 
 #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.  */
@@ -114,6 +117,7 @@ var_types;
 struct cmd_list_element;
 
 typedef void cmd_cfunc_ftype (char *args, int from_tty);
+typedef void cmd_const_cfunc_ftype (const char *args, int from_tty);
 
 /* This structure specifies notifications to be suppressed by a cli
    command interpreter.  */
@@ -137,12 +141,31 @@ extern struct cmd_list_element *add_cmd (const char *, enum command_class,
                                         const char *,
                                         struct cmd_list_element **);
 
+/* Const-correct variant of the above.  */
+
+extern struct cmd_list_element *add_cmd (const char *, enum command_class,
+                                        cmd_const_cfunc_ftype *fun,
+                                        const char *,
+                                        struct cmd_list_element **);
+
+/* Like add_cmd, but no command function is specified.  */
+
+extern struct cmd_list_element *add_cmd (const char *, enum command_class,
+                                        const char *,
+                                        struct cmd_list_element **);
+
 extern struct cmd_list_element *add_alias_cmd (const char *, const char *,
                                               enum command_class, int,
                                               struct cmd_list_element **);
 
+extern struct cmd_list_element *add_alias_cmd (const char *,
+                                              cmd_list_element *,
+                                              enum command_class, int,
+                                              struct cmd_list_element **);
+
+
 extern struct cmd_list_element *add_prefix_cmd (const char *, enum command_class,
-                                               cmd_cfunc_ftype *fun,
+                                               cmd_const_cfunc_ftype *fun,
                                                const char *,
                                                struct cmd_list_element **,
                                                const char *, int,
@@ -162,28 +185,47 @@ extern struct cmd_list_element *add_abbrev_prefix_cmd (const char *,
 extern void set_cmd_cfunc (struct cmd_list_element *cmd,
                           cmd_cfunc_ftype *cfunc);
 
+/* Const-correct variant of the above.  */
+
+extern void set_cmd_cfunc (struct cmd_list_element *cmd,
+                          cmd_const_cfunc_ftype *cfunc);
+
 typedef void cmd_sfunc_ftype (char *args, int from_tty,
                              struct cmd_list_element *c);
 extern void set_cmd_sfunc (struct cmd_list_element *cmd,
                           cmd_sfunc_ftype *sfunc);
 
-typedef VEC (char_ptr) *completer_ftype (struct cmd_list_element *,
-                                        const char *, const char *);
+/* A completion routine.  Add possible completions to tracker.
 
-typedef void completer_ftype_void (struct cmd_list_element *,
-                                  const char *, const char *);
+   TEXT is the text beyond what was matched for the command itself
+   (leading whitespace is skipped).  It stops where we are supposed to
+   stop completing (rl_point) and is '\0' terminated.  WORD points in
+   the same buffer as TEXT, and completions should be returned
+   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 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 *);
 
 /* Set the completer_handle_brkchars callback.  */
 
 extern void set_cmd_completer_handle_brkchars (struct cmd_list_element *,
-                                              completer_ftype_void *);
+                                              completer_handle_brkchars_ftype *);
 
 /* HACK: cagney/2002-02-23: Code, mostly in tracepoints.c, grubs
    around in cmd objects to test the value of the commands sfunc().  */
 extern int cmd_cfunc_eq (struct cmd_list_element *cmd,
                         cmd_cfunc_ftype *cfun);
+extern int cmd_cfunc_eq (struct cmd_list_element *cmd,
+                        cmd_const_cfunc_ftype *cfun);
 
 /* Each command object has a local context attached to it.  */
 extern void set_cmd_context (struct cmd_list_element *cmd,
@@ -242,11 +284,13 @@ extern struct cmd_list_element *add_info (const char *,
 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.  */
 
@@ -415,7 +459,7 @@ extern scoped_restore_tmpl<int> prevent_dont_repeat (void);
    function field NULL, the command is interpreted as a help topic, or
    as a class of commands.  */
 
-extern void not_just_help_class_command (char *, int);
+extern void not_just_help_class_command (const char *, int);
 
 /* Check function pointer.  */
 extern int cmd_func_p (struct cmd_list_element *cmd);
This page took 0.026792 seconds and 4 git commands to generate.