]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commitdiff
merge with trunk.
authorAndrew Cagney <cagney@redhat.com>
Fri, 28 Jun 2002 23:23:25 +0000 (23:23 +0000)
committerAndrew Cagney <cagney@redhat.com>
Fri, 28 Jun 2002 23:23:25 +0000 (23:23 +0000)
gdb/cli/cli-decode.c

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;
 }