* config/i386/tm-cygwin.h: include tm-i386.h instead of tm-i386v.h. This fixes
[binutils-gdb.git] / gdb / command.h
index bbafe1bc648d801f09c0acf7b89b2bc0e111c075..20ebef2b46faee905e7df55ccdc49a185ee5095c 100644 (file)
@@ -1,5 +1,13 @@
+/* ***DEPRECATED***  The gdblib files must not be calling/using things in any
+   of the possible command languages.  If necessary, a hook (that may be
+   present or not) must be used and set to the appropriate routine by any
+   command language that cares about it.  If you are having to include this
+   file you are possibly doing things the old way.  This file will disapear.
+   2000-12-01 fnasser@redhat.com    */
+
 /* Header file for command-reading library command.c.
-   Copyright (C) 1986, 1989, 1990, 2000 Free Software Foundation, Inc.
+   Copyright 1986, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1999, 2000
+   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
@@ -165,7 +173,14 @@ struct cmd_list_element
     char *replacement;
 
     /* Hook for another command to be executed before this command.  */
-    struct cmd_list_element *hook;
+    struct cmd_list_element *hook_pre;
+
+    /* Hook for another command to be executed after this command.  */
+    struct cmd_list_element *hook_post;
+
+    /* Flag that specifies if this command is already running it's hook. */
+    /* Prevents the possibility of hook recursion. */
+    int hook_in;
 
     /* Nonzero identifies a prefix command.  For them, the address
        of the variable containing the list of subcommands.  */
@@ -220,9 +235,13 @@ struct cmd_list_element
     /* Pointer to command strings of user-defined commands */
     struct command_line *user_commands;
 
-    /* Pointer to command that is hooked by this one,
+    /* Pointer to command that is hooked by this one, (by hook_pre)
+       so the hook can be removed when this one is deleted.  */
+    struct cmd_list_element *hookee_pre;
+
+    /* Pointer to command that is hooked by this one, (by hook_post)
        so the hook can be removed when this one is deleted.  */
-    struct cmd_list_element *hookee;
+    struct cmd_list_element *hookee_post;
 
     /* Pointer to command that is aliased by this one, so the
        aliased command can be located in case it has been hooked.  */
@@ -321,22 +340,21 @@ extern struct cmd_list_element *add_set_auto_boolean_cmd (char *name,
                                                          char *doc,
                                                          struct cmd_list_element **list);
 
+extern struct cmd_list_element *add_set_boolean_cmd (char *name,
+                                                    enum command_class class,
+                                                    int *var,
+                                                    char *doc,
+                                                    struct cmd_list_element **list);
+
 extern struct cmd_list_element *add_show_from_set (struct cmd_list_element *,
                                                   struct cmd_list_element
                                                   **);
 
-/* Do a "set" or "show" command.  ARG is NULL if no argument, or the text
-   of the argument, and FROM_TTY is nonzero if this command is being entered
-   directly by the user (i.e. these are just like any other
-   command).  C is the command list element for the command.  */
-
-extern void do_setshow_command (char *, int, struct cmd_list_element *);
-
 /* Do a "show" command for each thing on a command list.  */
 
 extern void cmd_show_list (struct cmd_list_element *, int, char *);
 
-extern void error_no_arg (char *);
+extern NORETURN void error_no_arg (char *) ATTR_NORETURN;
 
 extern void dont_repeat (void);