gdb/
[deliverable/binutils-gdb.git] / gdb / command.h
index 348adab36a79098fe042fb97f9d2d7ea492c5a32..1a6bec417fa4451435e473bd35182118e8fe55ce 100644 (file)
@@ -1,11 +1,11 @@
 /* Header file for command-reading library command.c.
 
-   Copyright 1986, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1999,
-   2000, 2002, 2004 Free Software Foundation, Inc.
+   Copyright (C) 1986, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1999, 2000,
+   2002, 2004, 2007, 2008, 2009 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
-   the Free Software Foundation; either version 2 of the License, or
+   the Free Software Foundation; either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
@@ -14,9 +14,7 @@
    GNU General Public License for more details.
 
    You should have received a copy of the GNU General Public License
-   along with this program; if not, write to the Free Software
-   Foundation, Inc., 59 Temple Place - Suite 330,
-   Boston, MA 02111-1307, USA.  */
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
 #if !defined (COMMAND_H)
 #define COMMAND_H 1
@@ -30,7 +28,7 @@
 enum command_class
 {
   /* Special args to help_list */
-  class_deprecated, all_classes = -2, all_commands = -1,
+  class_deprecated = -3, all_classes = -2, all_commands = -1,
   /* Classes of commands */
   no_class = -1, class_run = 0, class_vars, class_stack,
   class_files, class_support, class_info, class_breakpoint, class_trace,
@@ -80,12 +78,18 @@ typedef enum var_types
     /* 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.  */
     var_zinteger,
+    /* ZeroableUnsignedInteger.  *VAR is an unsigned int.  Zero really
+       means zero.  */
+    var_zuinteger,
     /* Enumerated type.  Can only have one of the specified values.  *VAR is a
        char pointer to the name of the element that we find.  */
     var_enum
@@ -134,7 +138,8 @@ extern void set_cmd_sfunc (struct cmd_list_element *cmd,
                           cmd_sfunc_ftype *sfunc);
 
 extern void set_cmd_completer (struct cmd_list_element *cmd,
-                              char **(*completer) (char *text, char *word));
+                              char **(*completer) (struct cmd_list_element *cmd,
+                                                   char *text, char *word));
 
 /* HACK: cagney/2002-02-23: Code, mostly in tracepoints.c, grubs
    around in cmd objects to test the value of the commands sfunc().  */
@@ -153,15 +158,6 @@ extern void execute_cmd_pre_hook (struct cmd_list_element *cmd);
 extern void execute_cmd_post_hook (struct cmd_list_element *cmd);
 
 /* Return the type of the command.  */
-/* NOTE: cagney/2002-03-17: The deprecated_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.  Unfortunately, for ``show'' commands cloned from
-   ``set'', this includes callbacks belonging to ``set'' commands.
-   Making this worse, this only occures if
-   deprecated_add_show_from_set() is called after add_cmd_sfunc()
-   (BUG?).  */
 extern enum cmd_types cmd_type (struct cmd_list_element *cmd);
 
 
@@ -201,8 +197,6 @@ extern char **complete_on_cmdlist (struct cmd_list_element *, char *, char *);
 
 extern char **complete_on_enum (const char *enumlist[], char *, char *);
 
-extern void delete_cmd (char *, struct cmd_list_element **);
-
 extern void help_cmd (char *, struct ui_file *);
 
 extern void help_list (struct cmd_list_element *, char *,
@@ -211,40 +205,28 @@ 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,
-                            const char *set_doc, const char *show_doc,
-                            const char *help_doc, const char *print,
-                            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,
+/* 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,
-                                 const char *set_doc, const char *show_doc,
-                                 const char *help_doc, const char *print,
+                                 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,
@@ -252,9 +234,8 @@ extern void add_setshow_auto_boolean_cmd (char *name,
                                          const char *set_doc,
                                          const char *show_doc,
                                          const char *help_doc,
-                                         const char *print,
                                          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);
 
@@ -262,9 +243,64 @@ extern void add_setshow_boolean_cmd (char *name,
                                     enum command_class class,
                                     int *var,
                                     const char *set_doc, const char *show_doc,
-                                    const char *help_doc, const char *print,
+                                    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,
+                                    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);
 
@@ -274,9 +310,8 @@ extern void add_setshow_uinteger_cmd (char *name,
                                      const char *set_doc,
                                      const char *show_doc,
                                      const char *help_doc,
-                                     const char *print,
                                      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);
 
@@ -286,14 +321,21 @@ extern void add_setshow_zinteger_cmd (char *name,
                                      const char *set_doc,
                                      const char *show_doc,
                                      const char *help_doc,
-                                     const char *print,
                                      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 *deprecated_add_show_from_set (struct cmd_list_element *,
-                                                             struct cmd_list_element **);
+extern void add_setshow_zuinteger_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);
 
 /* Do a "show" command for each thing on a command list.  */
 
This page took 0.02657 seconds and 4 git commands to generate.