/* Header file for command-reading library command.c.
Copyright 1986, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1999,
- 2000, 2002 Free Software Foundation, Inc.
+ 2000, 2002, 2004 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
/* String which stores what the user types verbatim.
*VAR is a malloc'd string, or NULL if the string is empty. */
var_string_noescape,
- /* String which stores a filename.
- *VAR is a malloc'd string, or NULL if the string is empty. */
+ /* String which stores a filename. (*VAR) is a malloc'd string,
+ or "" if the string was empty. */
+ var_optional_filename,
+ /* String which stores a filename. (*VAR) is a malloc'd
+ string. */
var_filename,
/* ZeroableInteger. *VAR is an int. Like Unsigned Integer except
that zero really means zero. */
extern void execute_cmd_post_hook (struct cmd_list_element *cmd);
/* Return the type of the command. */
-/* NOTE: cagney/2002-03-17: The add_show_from_set() function clones
- the set command passed as a parameter. The clone operation will
- include (BUG?) any ``set'' command callback, if present. Commands
- like ``info set'' call all the ``show'' command callbacks.
- Unfortunatly, for ``show'' commands cloned from ``set'', this
- includes callbacks belonging to ``set'' commands. Making this
- worse, this only occures if add_show_from_set() is called after
- add_cmd_sfunc() (BUG?). */
extern enum cmd_types cmd_type (struct cmd_list_element *cmd);
extern void help_cmd_list (struct cmd_list_element *, enum command_class,
char *, int, struct ui_file *);
-extern void add_setshow_cmd (char *name,
- enum command_class class,
- var_types var_type, void *var,
- char *set_doc, char *show_doc,
- cmd_sfunc_ftype *set_func,
- cmd_sfunc_ftype *show_func,
- struct cmd_list_element **set_list,
- struct cmd_list_element **show_list);
-
-extern void add_setshow_cmd_full (char *name,
+/* NOTE: cagney/2005-02-21: Since every set command should be paired
+ with a corresponding show command (i.e., add_setshow_*) this call
+ should not be needed. Unfortunatly some are not (e.g.,
+ "maintenance <variable> <value>") and those need to be fixed. */
+extern struct cmd_list_element *deprecated_add_set_cmd (char *name, enum
+ command_class class,
+ var_types var_type, void *var,
+ char *doc,
+ struct cmd_list_element **list);
+
+/* Method for show a set/show variable's VALUE on FILE. If this
+ method isn't supplied deprecated_show_value_hack() is called (which
+ is not good). */
+typedef void (show_value_ftype) (struct ui_file *file,
+ int from_tty,
+ struct cmd_list_element *cmd,
+ const char *value);
+/* NOTE: i18n: This function is not i18n friendly. Callers should
+ instead print the value out directly. */
+extern show_value_ftype deprecated_show_value_hack;
+
+extern void add_setshow_enum_cmd (char *name,
enum command_class class,
- var_types var_type, void *var,
- char *set_doc, char *show_doc,
+ const char *enumlist[],
+ const char **var,
+ const char *set_doc,
+ const char *show_doc,
+ const char *help_doc,
cmd_sfunc_ftype *set_func,
- cmd_sfunc_ftype *show_func,
+ show_value_ftype *show_func,
struct cmd_list_element **set_list,
- struct cmd_list_element **show_list,
- struct cmd_list_element **set_result,
- struct cmd_list_element **show_result);
-
-extern struct cmd_list_element *add_set_cmd (char *name, enum
- command_class class,
- var_types var_type, void *var,
- char *doc,
- struct cmd_list_element **list);
-
-extern struct cmd_list_element *add_set_enum_cmd (char *name,
- enum command_class class,
- const char *enumlist[],
- const char **var,
- char *doc,
- struct cmd_list_element **list);
+ struct cmd_list_element **show_list);
extern void add_setshow_auto_boolean_cmd (char *name,
enum command_class class,
enum auto_boolean *var,
- char *set_doc, char *show_doc,
+ const char *set_doc,
+ const char *show_doc,
+ const char *help_doc,
cmd_sfunc_ftype *set_func,
- cmd_sfunc_ftype *show_func,
+ show_value_ftype *show_func,
struct cmd_list_element **set_list,
struct cmd_list_element **show_list);
extern void add_setshow_boolean_cmd (char *name,
enum command_class class,
int *var,
- char *set_doc,
- char *show_doc,
+ const char *set_doc, const char *show_doc,
+ const char *help_doc,
+ cmd_sfunc_ftype *set_func,
+ show_value_ftype *show_func,
+ struct cmd_list_element **set_list,
+ struct cmd_list_element **show_list);
+
+extern void add_setshow_filename_cmd (char *name,
+ enum command_class class,
+ char **var,
+ const char *set_doc,
+ const char *show_doc,
+ const char *help_doc,
+ cmd_sfunc_ftype *set_func,
+ show_value_ftype *show_func,
+ struct cmd_list_element **set_list,
+ struct cmd_list_element **show_list);
+
+extern void add_setshow_string_cmd (char *name,
+ enum command_class class,
+ char **var,
+ const char *set_doc,
+ const char *show_doc,
+ const char *help_doc,
+ cmd_sfunc_ftype *set_func,
+ show_value_ftype *show_func,
+ struct cmd_list_element **set_list,
+ struct cmd_list_element **show_list);
+
+extern void add_setshow_string_noescape_cmd (char *name,
+ enum command_class class,
+ char **var,
+ const char *set_doc,
+ const char *show_doc,
+ const char *help_doc,
+ cmd_sfunc_ftype *set_func,
+ show_value_ftype *show_func,
+ struct cmd_list_element **set_list,
+ struct cmd_list_element **show_list);
+
+extern void add_setshow_optional_filename_cmd (char *name,
+ enum command_class class,
+ char **var,
+ const char *set_doc,
+ const char *show_doc,
+ const char *help_doc,
+ cmd_sfunc_ftype *set_func,
+ show_value_ftype *show_func,
+ struct cmd_list_element **set_list,
+ struct cmd_list_element **show_list);
+
+extern void add_setshow_integer_cmd (char *name,
+ enum command_class class,
+ unsigned int *var,
+ const char *set_doc,
+ const char *show_doc,
+ const char *help_doc,
cmd_sfunc_ftype *set_func,
- cmd_sfunc_ftype *show_func,
+ show_value_ftype *show_func,
struct cmd_list_element **set_list,
struct cmd_list_element **show_list);
-extern struct cmd_list_element *add_show_from_set (struct cmd_list_element *,
- struct cmd_list_element
- **);
+extern void add_setshow_uinteger_cmd (char *name,
+ enum command_class class,
+ unsigned int *var,
+ const char *set_doc,
+ const char *show_doc,
+ const char *help_doc,
+ cmd_sfunc_ftype *set_func,
+ show_value_ftype *show_func,
+ struct cmd_list_element **set_list,
+ struct cmd_list_element **show_list);
+
+extern void add_setshow_zinteger_cmd (char *name,
+ enum command_class class,
+ int *var,
+ const char *set_doc,
+ const char *show_doc,
+ const char *help_doc,
+ cmd_sfunc_ftype *set_func,
+ show_value_ftype *show_func,
+ struct cmd_list_element **set_list,
+ struct cmd_list_element **show_list);
/* Do a "show" command for each thing on a command list. */