* f-exp.y (yyparse): Add code to support exponentiation expression.
[deliverable/binutils-gdb.git] / gdb / command.h
index 00110ce555d25e8c146df56f1e909f3abf8d7c69..9bc01e7decd7d045f364d76463533d045d7a43c7 100644 (file)
@@ -1,7 +1,7 @@
 /* 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
@@ -80,8 +80,11 @@ 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.  */
@@ -153,14 +156,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 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);
 
 
@@ -210,41 +205,136 @@ 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 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);
+/* 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,
+                                 const char *enumlist[],
+                                 const 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_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,
+                                    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.  */
 
@@ -260,4 +350,10 @@ extern void dont_repeat (void);
 
 extern void not_just_help_class_command (char *, int);
 
+/* check function pointer */
+extern int cmd_func_p (struct cmd_list_element *cmd);
+
+/* call the command function */
+extern void cmd_func (struct cmd_list_element *cmd, char *args, int from_tty);
+
 #endif /* !defined (COMMAND_H) */
This page took 0.025649 seconds and 4 git commands to generate.