/* This structure records one command'd definition. */
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. */
extern int valid_user_defined_cmd_name_p (const char *name);
+/* 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,
- cmd_cfunc_ftype *fun,
const char *,
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,
extern struct cmd_list_element *add_abbrev_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,
struct cmd_list_element
**);
-/* Set the commands corresponding callback. */
-
-extern void set_cmd_cfunc (struct cmd_list_element *cmd,
- cmd_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,
/* 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);
+ 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,
struct cmd_list_element **cmd);
extern struct cmd_list_element *add_com (const char *, enum command_class,
- cmd_cfunc_ftype *fun,
+ cmd_const_cfunc_ftype *fun,
const char *);
extern struct cmd_list_element *add_com_alias (const char *, const char *,
extern struct cmd_list_element *add_com_suppress_notification
(const char *name, enum command_class theclass,
- cmd_cfunc_ftype *fun, const char *doc,
+ cmd_const_cfunc_ftype *fun, const char *doc,
int *supress_notification);
extern struct cmd_list_element *add_info (const char *,
- cmd_cfunc_ftype *fun,
+ cmd_const_cfunc_ftype *fun,
const char *);
extern struct cmd_list_element *add_info_alias (const char *, const char *,
extern scoped_restore_tmpl<int> prevent_dont_repeat (void);
+/* Set the arguments that will be passed if the current command is
+ repeated. Note that the passed-in string must be a constant. */
+
+extern void set_repeat_arguments (const char *args);
+
/* Used to mark commands that don't do anything. If we just leave the
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);