/* Header file for GDB command decoding library.
- Copyright 2000, 2003 Free Software Foundation, Inc.
+ Copyright (c) 2000, 2003, 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,
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
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 its hook. */
+ /* Prevents the possibility of hook recursion. */
int hook_in;
/* Nonzero identifies a prefix command. For them, the address
returned relative to this position. For example, suppose TEXT is "foo"
and we want to complete to "foobar". If WORD is "oo", return
"oobar"; if WORD is "baz/foo", return "baz/foobar". */
- char **(*completer) (char *text, char *word);
+ char **(*completer) (struct cmd_list_element *cmd, char *text, char *word);
+
+ /* Destruction routine for this command. If non-NULL, this is
+ called when this command instance is destroyed. This may be
+ used to finalize the CONTEXT field, if needed. */
+ void (*destroyer) (struct cmd_list_element *self, void *context);
/* Type of "set" or "show" command (or SET_NOT_SET if not "set"
or "show"). */
/* Pointer to command that is aliased by this one, so the
aliased command can be located in case it has been hooked. */
struct cmd_list_element *cmd_pointer;
+
+ /* Start of a linked list of all aliases of this command. */
+ struct cmd_list_element *aliases;
+
+ /* Link pointer for aliases on an alias list. */
+ struct cmd_list_element *alias_chain;
};
/* API to the manipulation of command lists. */
struct cmd_list_element * c));
extern void set_cmd_completer (struct cmd_list_element *cmd,
- char **(*completer) (char *text, char *word));
+ char **(*completer) (struct cmd_list_element *self,
+ 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(). */
extern char **complete_on_enum (const char *enumlist[], char *, char *);
-extern void delete_cmd (char *, struct cmd_list_element **);
-
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 *deprecated_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 *);