/* Header file for GDB command decoding library.
- Copyright 2000 Free Software Foundation, Inc.
+
+ Copyright (c) 2000, 2003, 2007, 2008 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,
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 (CLI_DECODE_H)
#define CLI_DECODE_H 1
-#include "gdb_regex.h" /* Needed by apropos_cmd. */
#include "command.h"
+struct re_pattern_buffer;
+
#if 0
/* FIXME: cagney/2002-03-17: Once cmd_type() has been removed, ``enum
cmd_types'' can be moved from "command.h" to "cli-decode.h". */
#define DEPRECATED_WARN_USER 0x2
#define MALLOCED_REPLACEMENT 0x4
+/* This flag is set if the command is allowed during async execution. */
+#define CMD_ASYNC_OK 0x8
+
struct cmd_list_element
{
/* Points to next command in this list. */
to one of the below. */
union
{
- /* If type is not_set_cmd, call it like this: */
- void (*cfunc) (char *args, int from_tty);
-
- /* If type is set_cmd or show_cmd, first set the variables, and
- then call this. */
- void (*sfunc) (char *args, int from_tty, struct cmd_list_element * c);
+ /* If type is not_set_cmd, call it like this: */
+ cmd_cfunc_ftype *cfunc;
+ /* If type is set_cmd or show_cmd, first set the variables,
+ and then call this: */
+ cmd_sfunc_ftype *sfunc;
}
function;
Entire string should also end with a period, not a newline. */
char *doc;
+ /* For set/show commands. A method for printing the output to the
+ specified stream. */
+ show_value_ftype *show_value_func;
+
/* flags : a bitfield
bit 0: (LSB) CMD_DEPRECATED, when 1 indicated that this command
*/
int flags;
- /* if this command is deprecated, this is the replacement name */
+ /* If this command is deprecated, this is the replacement name. */
char *replacement;
/* If this command represents a show command, then this function
/* 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. */
+ /* 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
extern void set_cmd_context (struct cmd_list_element *cmd, void *context);
extern void *get_cmd_context (struct cmd_list_element *cmd);
+/* Mark command as async-ready; there is no way to disable this once
+ set. */
+extern void set_cmd_async_ok (struct cmd_list_element *);
+
+/* Return true if command is async-ok. */
+extern int get_cmd_async_ok (struct cmd_list_element *);
+
extern struct cmd_list_element *lookup_cmd (char **,
struct cmd_list_element *, char *,
int, int);
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);
-
-extern struct cmd_list_element *add_set_auto_boolean_cmd (char *name,
- enum command_class class,
- enum auto_boolean *var,
- 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
- **);
-
/* Functions that implement commands about CLI commands. */
extern void help_cmd (char *, struct ui_file *);