* command.h (add_setshow_cmd): Declare.
authorTom Tromey <tromey@redhat.com>
Wed, 26 Jun 2002 20:58:17 +0000 (20:58 +0000)
committerTom Tromey <tromey@redhat.com>
Wed, 26 Jun 2002 20:58:17 +0000 (20:58 +0000)
(add_setshow_cmd_full): Declare.
* cli/cli-decode.c (add_setshow_cmd): No longer static.  Now
returns void.  Use add_setshow_cmd_full.
(add_setshow_cmd_full): New function.
(add_setshow_auto_boolean_cmd): Use add_setshow_cmd_full.
(add_setshow_boolean_cmd): Likewise.

gdb/ChangeLog
gdb/cli/cli-decode.c
gdb/command.h

index 6584ed47be25d7b9f689a6eaaf412afd95c3a5b5..28142e3de50ec6d542add3fd0bbfde81dfa48dcb 100644 (file)
@@ -1,3 +1,13 @@
+2002-06-26  Tom Tromey  <tromey@redhat.com>
+
+       * command.h (add_setshow_cmd): Declare.
+       (add_setshow_cmd_full): Declare.
+       * cli/cli-decode.c (add_setshow_cmd): No longer static.  Now
+       returns void.  Use add_setshow_cmd_full.
+       (add_setshow_cmd_full): New function.
+       (add_setshow_auto_boolean_cmd): Use add_setshow_cmd_full.
+       (add_setshow_boolean_cmd): Likewise.
+
 2002-06-26  Jason Thorpe  <thorpej@wasabisystems.com>
 
        * config/vax/tm-vax.h: Protect from multiple inclusion.
index 3efee979ebcfc6fdb4826594299061fa69c3fda8..098c13a198988bfbb4de36e5686e4dd425f1f006 100644 (file)
@@ -329,16 +329,20 @@ add_set_or_show_cmd (char *name,
    CLASS is as in add_cmd.  VAR_TYPE is the kind of thing we are
    setting.  VAR is address of the variable being controlled by this
    command.  SET_FUNC and SHOW_FUNC are the callback functions (if
-   non-NULL).  SET_DOC and SHOW_DOC are the documentation strings.  */
+   non-NULL).  SET_DOC and SHOW_DOC are the documentation strings.
+   SET_RESULT and SHOW_RESULT, if not NULL, are set to the resulting
+   command structures.  */
 
-static struct cmd_list_element *
-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)
+void
+add_setshow_cmd_full (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,
+                     struct cmd_list_element **set_result,
+                     struct cmd_list_element **show_result)
 {
   struct cmd_list_element *set;
   struct cmd_list_element *show;
@@ -350,9 +354,31 @@ add_setshow_cmd (char *name,
                              show_doc, show_list);
   if (show_func != NULL)
     set_cmd_sfunc (show, show_func);
-  /* The caller often wants to modify set to include info like an
-     enumeration.  */
-  return set;
+
+  if (set_result != NULL)
+    *set_result = set;
+  if (show_result != NULL)
+    *show_result = show;
+}
+
+/* Add element named NAME to both the command SET_LIST and SHOW_LIST.
+   CLASS is as in add_cmd.  VAR_TYPE is the kind of thing we are
+   setting.  VAR is address of the variable being controlled by this
+   command.  SET_FUNC and SHOW_FUNC are the callback functions (if
+   non-NULL).  SET_DOC and SHOW_DOC are the documentation strings.  */
+
+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)
+{
+  add_setshow_cmd_full (name, class, var_type, var, set_doc, show_doc,
+                       set_func, show_func, set_list, show_list,
+                       NULL, NULL);
 }
 
 struct cmd_list_element *
@@ -405,9 +431,10 @@ add_setshow_auto_boolean_cmd (char *name,
 {
   static const char *auto_boolean_enums[] = { "on", "off", "auto", NULL };
   struct cmd_list_element *c;
-  c = add_setshow_cmd (name, class, var_auto_boolean, var,
-                      set_doc, show_doc, set_func, show_func,
-                      set_list, show_list);
+  add_setshow_cmd_full (name, class, var_auto_boolean, var,
+                       set_doc, show_doc, set_func, show_func,
+                       set_list, show_list,
+                       &c, NULL);
   c->enums = auto_boolean_enums;
 }
 
@@ -426,10 +453,11 @@ add_setshow_boolean_cmd (char *name,
 {
   static const char *boolean_enums[] = { "on", "off", NULL };
   struct cmd_list_element *c;
-  c = add_setshow_cmd (name, class, var_boolean, var,
-                      set_doc, show_doc,
-                      set_func, show_func,
-                      set_list, show_list);
+  add_setshow_cmd_full (name, class, var_boolean, var,
+                       set_doc, show_doc,
+                       set_func, show_func,
+                       set_list, show_list,
+                       &c, NULL);
   c->enums = boolean_enums;
 }
 
index 00110ce555d25e8c146df56f1e909f3abf8d7c69..9aceef6446ab00544442089535a6c5ff7f3ade2e 100644 (file)
@@ -210,6 +210,26 @@ extern void help_list (struct cmd_list_element *, char *,
 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,
+                                 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,
+                                 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,