mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2024-11-21 01:12:32 +08:00
* command.h: Update copyright.
(struct cmd_list_element): Replace definition with opaque declaration. (enum cmd_types): Document that it will eventually be moved to cli/cli-decode.h (CMD_DEPRECATED, DEPRECATED_WARN_USER): Delete macros. (MALLOCED_REPLACEMENT): Delete macro. * Makefile.in (cli_decode_h): Add $(command_h). (top.o, completer.o, maint.o): Add dependency on $(cli_decode_h). * top.c: Include "cli/cli-decode.h". * completer.c: Include "cli/cli-decode.h". * maint.c: Include "cli/cli-decode.h". * cli/cli-decode.h: Include "command.h". (enum command_class): Delete. (enum cmd_types): Comment out. (enum cmd_auto_boolean): Delete. (enum var_types): Delete.
This commit is contained in:
parent
b2875cc0a2
commit
18a642a148
@ -1,3 +1,23 @@
|
||||
2002-03-23 Andrew Cagney <ac131313@redhat.com>
|
||||
|
||||
* command.h: Update copyright.
|
||||
(struct cmd_list_element): Replace definition with opaque
|
||||
declaration.
|
||||
(enum cmd_types): Document that it will eventually be moved to
|
||||
cli/cli-decode.h
|
||||
(CMD_DEPRECATED, DEPRECATED_WARN_USER): Delete macros.
|
||||
(MALLOCED_REPLACEMENT): Delete macro.
|
||||
* Makefile.in (cli_decode_h): Add $(command_h).
|
||||
(top.o, completer.o, maint.o): Add dependency on $(cli_decode_h).
|
||||
* top.c: Include "cli/cli-decode.h".
|
||||
* completer.c: Include "cli/cli-decode.h".
|
||||
* maint.c: Include "cli/cli-decode.h".
|
||||
* cli/cli-decode.h: Include "command.h".
|
||||
(enum command_class): Delete.
|
||||
(enum cmd_types): Comment out.
|
||||
(enum cmd_auto_boolean): Delete.
|
||||
(enum var_types): Delete.
|
||||
|
||||
2002-03-23 Andrew Cagney <ac131313@redhat.com>
|
||||
|
||||
* cli/cli-decode.c: Include "gdb_assert.h".
|
||||
|
@ -592,7 +592,7 @@ buildsym_h = buildsym.h
|
||||
c_lang_h = c-lang.h $(value_h)
|
||||
call_cmds_h = call-cmds.h
|
||||
cli_cmds_h = $(srcdir)/cli/cli-cmds.h
|
||||
cli_decode_h = $(srcdir)/cli/cli-decode.h
|
||||
cli_decode_h = $(srcdir)/cli/cli-decode.h $(command_h)
|
||||
cli_out_h = cli-out.h
|
||||
cli_script_h = $(srcdir)/cli/cli-script.h
|
||||
cli_setshow_h = $(srcdir)/cli/cli-setshow.h
|
||||
@ -1391,7 +1391,7 @@ event-loop.o: event-loop.c $(defs_h) $(top_h) $(event_loop_h) $(event_top_h)
|
||||
|
||||
event-top.o: event-top.c $(top_h) $(readline_headers) \
|
||||
$(defs_h) $(inferior_h) $(event_loop_h) $(event_top_h) $(terminal_h) \
|
||||
$(gdbcmd_h) $(target_h)
|
||||
$(gdbcmd_h) $(target_h) $(cli_decode_h)
|
||||
|
||||
inf-loop.o: inf-loop.c $(defs_h) $(inferior_h) $(inf_loop_h) $(event_loop_h) \
|
||||
$(event_top_h)
|
||||
@ -1709,7 +1709,8 @@ main.o: main.c $(top_h) $(defs_h) $(gdb_string_h) $(event_loop_h) \
|
||||
$(symfile_h) $(gdbcore_h) $(ui_out_h)
|
||||
|
||||
maint.o: maint.c $(defs_h) $(gdbcmd_h) $(gdbtypes_h) $(symtab_h) \
|
||||
$(language_h) $(expression_h) $(objfiles_h) $(symfile_h)
|
||||
$(language_h) $(expression_h) $(objfiles_h) $(symfile_h) \
|
||||
$(cli_decode_h)
|
||||
|
||||
mcore-tdep.o: mcore-tdep.c $(defs_h) $(frame_h) $(gdbcmd_h) $(value_h) \
|
||||
$(symtab_h) $(symfile_h) $(gdbcore_h) $(inferior_h)
|
||||
@ -2094,7 +2095,8 @@ thread.o: thread.c $(defs_h) $(gdbthread_h) $(gdbcmd_h) $(target_h) \
|
||||
$(regcache_h) $(ui_out_h) $(gdb_h)
|
||||
|
||||
completer.o: completer.c $(completer_h) $(gdbtypes_h) $(symtab_h) \
|
||||
$(defs_h) $(gdbcmd_h) $(expression_h) $(readline_headers)
|
||||
$(defs_h) $(gdbcmd_h) $(expression_h) $(readline_headers) \
|
||||
$(cli_decode_h)
|
||||
|
||||
top.o: top.c $(top_h) $(bfd_h) $(getopt_h) $(readline_headers) $(call_cmds_h) \
|
||||
$(cli_cmds_h) $(cli_script_h) $(cli_setshow_h) \
|
||||
|
@ -20,24 +20,11 @@
|
||||
#define CLI_DECODE_H 1
|
||||
|
||||
#include "gdb_regex.h" /* Needed by apropos_cmd. */
|
||||
#include "command.h"
|
||||
|
||||
/* Command classes are top-level categories into which commands are broken
|
||||
down for "help" purposes.
|
||||
Notes on classes: class_alias is for alias commands which are not
|
||||
abbreviations of the original command. class-pseudo is for
|
||||
commands which are not really commands nor help topics ("stop"). */
|
||||
|
||||
enum command_class
|
||||
{
|
||||
/* Special args to help_list */
|
||||
class_deprecated, 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,
|
||||
class_alias, class_obscure, class_user, class_maintenance,
|
||||
class_pseudo, class_tui, class_xdb
|
||||
};
|
||||
|
||||
#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". */
|
||||
/* Not a set/show command. Note that some commands which begin with
|
||||
"set" or "show" might be in this category, if their syntax does
|
||||
not fall into one of the following categories. */
|
||||
@ -48,55 +35,7 @@ typedef enum cmd_types
|
||||
show_cmd
|
||||
}
|
||||
cmd_types;
|
||||
|
||||
/* Reasonable values for an AUTO_BOOLEAN variable. */
|
||||
enum cmd_auto_boolean
|
||||
{
|
||||
CMD_AUTO_BOOLEAN_TRUE,
|
||||
CMD_AUTO_BOOLEAN_FALSE,
|
||||
CMD_AUTO_BOOLEAN_AUTO
|
||||
};
|
||||
|
||||
/* Types of "set" or "show" command. */
|
||||
typedef enum var_types
|
||||
{
|
||||
/* "on" or "off". *VAR is an integer which is nonzero for on,
|
||||
zero for off. */
|
||||
var_boolean,
|
||||
|
||||
/* "on" / "true" / "enable" or "off" / "false" / "disable" or
|
||||
"auto. *VAR is an ``enum cmd_auto_boolean''. NOTE: In general
|
||||
a custom show command will need to be implemented - one that
|
||||
for "auto" prints both the "auto" and the current auto-selected
|
||||
value. */
|
||||
var_auto_boolean,
|
||||
|
||||
/* Unsigned Integer. *VAR is an unsigned int. The user can type 0
|
||||
to mean "unlimited", which is stored in *VAR as UINT_MAX. */
|
||||
var_uinteger,
|
||||
|
||||
/* Like var_uinteger but signed. *VAR is an int. The user can type 0
|
||||
to mean "unlimited", which is stored in *VAR as INT_MAX. */
|
||||
var_integer,
|
||||
|
||||
/* String which the user enters with escapes (e.g. the user types \n and
|
||||
it is a real newline in the stored string).
|
||||
*VAR is a malloc'd string, or NULL if the string is empty. */
|
||||
var_string,
|
||||
/* 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. */
|
||||
var_filename,
|
||||
/* ZeroableInteger. *VAR is an int. Like Unsigned Integer except
|
||||
that zero really means zero. */
|
||||
var_zinteger,
|
||||
/* 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
|
||||
}
|
||||
var_types;
|
||||
#endif
|
||||
|
||||
/* This structure records one command'd definition. */
|
||||
|
||||
|
168
gdb/command.h
168
gdb/command.h
@ -1,13 +1,7 @@
|
||||
/* ***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 1986, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1999, 2000
|
||||
Free Software Foundation, Inc.
|
||||
|
||||
Copyright 1986, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1999,
|
||||
2000, 2002 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
|
||||
@ -44,6 +38,8 @@ enum command_class
|
||||
class_pseudo, class_tui, class_xdb
|
||||
};
|
||||
|
||||
/* FIXME: cagney/2002-03-17: Once cmd_type() has been removed, ``enum
|
||||
cmd_types'' can be moved from "command.h" to "cli-decode.h". */
|
||||
/* Not a set/show command. Note that some commands which begin with
|
||||
"set" or "show" might be in this category, if their syntax does
|
||||
not fall into one of the following categories. */
|
||||
@ -105,159 +101,7 @@ typedef enum var_types
|
||||
var_types;
|
||||
|
||||
/* This structure records one command'd definition. */
|
||||
|
||||
|
||||
/* This flag is used by the code executing commands to warn the user
|
||||
the first time a deprecated command is used, see the 'flags' field in
|
||||
the following struct.
|
||||
*/
|
||||
#define CMD_DEPRECATED 0x1
|
||||
#define DEPRECATED_WARN_USER 0x2
|
||||
#define MALLOCED_REPLACEMENT 0x4
|
||||
|
||||
struct cmd_list_element
|
||||
{
|
||||
/* Points to next command in this list. */
|
||||
struct cmd_list_element *next;
|
||||
|
||||
/* Name of this command. */
|
||||
char *name;
|
||||
|
||||
/* Command class; class values are chosen by application program. */
|
||||
enum command_class class;
|
||||
|
||||
/* Function definition of this command. NULL for command class
|
||||
names and for help topics that are not really commands. NOTE:
|
||||
cagney/2002-02-02: This function signature is evolving. For
|
||||
the moment suggest sticking with either set_cmd_cfunc() or
|
||||
set_cmd_sfunc(). */
|
||||
void (*func) (struct cmd_list_element *c, char *args, int from_tty);
|
||||
/* The command's real callback. At present func() bounces through
|
||||
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);
|
||||
}
|
||||
function;
|
||||
|
||||
/* Local state (context) for this command. This can be anything. */
|
||||
void *context;
|
||||
|
||||
/* Documentation of this command (or help topic).
|
||||
First line is brief documentation; remaining lines form, with it,
|
||||
the full documentation. First line should end with a period.
|
||||
Entire string should also end with a period, not a newline. */
|
||||
char *doc;
|
||||
|
||||
/* flags : a bitfield
|
||||
|
||||
bit 0: (LSB) CMD_DEPRECATED, when 1 indicated that this command
|
||||
is deprecated. It may be removed from gdb's command set in the
|
||||
future.
|
||||
|
||||
bit 1: DEPRECATED_WARN_USER, the user needs to be warned that
|
||||
this is a deprecated command. The user should only be warned
|
||||
the first time a command is used.
|
||||
|
||||
bit 2: MALLOCED_REPLACEMENT, when functions are deprecated at
|
||||
compile time (this is the way it should, in general, be done)
|
||||
the memory containing the replacement string is statically
|
||||
allocated. In some cases it makes sense to deprecate commands
|
||||
at runtime (the testsuite is one example). In this case the
|
||||
memory for replacement is malloc'ed. When a command is
|
||||
undeprecated or re-deprecated at runtime we don't want to risk
|
||||
calling free on statically allocated memory, so we check this
|
||||
flag.
|
||||
*/
|
||||
int flags;
|
||||
|
||||
/* if this command is deprecated, this is the replacement name */
|
||||
char *replacement;
|
||||
|
||||
/* If this command represents a show command, then this function
|
||||
is called before the variable's value is examined. */
|
||||
void (*pre_show_hook) (struct cmd_list_element *c);
|
||||
|
||||
/* Hook for another command to be executed before this command. */
|
||||
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. */
|
||||
struct cmd_list_element **prefixlist;
|
||||
|
||||
/* For prefix commands only:
|
||||
String containing prefix commands to get here: this one
|
||||
plus any others needed to get to it. Should end in a space.
|
||||
It is used before the word "command" in describing the
|
||||
commands reached through this prefix. */
|
||||
char *prefixname;
|
||||
|
||||
/* For prefix commands only:
|
||||
nonzero means do not get an error if subcommand is not
|
||||
recognized; call the prefix's own function in that case. */
|
||||
char allow_unknown;
|
||||
|
||||
/* Nonzero says this is an abbreviation, and should not
|
||||
be mentioned in lists of commands.
|
||||
This allows "br<tab>" to complete to "break", which it
|
||||
otherwise wouldn't. */
|
||||
char abbrev_flag;
|
||||
|
||||
/* Completion routine for this command. TEXT is the text beyond
|
||||
what was matched for the command itself (leading whitespace is
|
||||
skipped). It stops where we are supposed to stop completing
|
||||
(rl_point) and is '\0' terminated.
|
||||
|
||||
Return value is a malloc'd vector of pointers to possible completions
|
||||
terminated with NULL. If there are no completions, returning a pointer
|
||||
to a NULL would work but returning NULL itself is also valid.
|
||||
WORD points in the same buffer as TEXT, and completions should be
|
||||
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);
|
||||
|
||||
/* Type of "set" or "show" command (or SET_NOT_SET if not "set"
|
||||
or "show"). */
|
||||
cmd_types type;
|
||||
|
||||
/* Pointer to variable affected by "set" and "show". Doesn't matter
|
||||
if type is not_set. */
|
||||
void *var;
|
||||
|
||||
/* What kind of variable is *VAR? */
|
||||
var_types var_type;
|
||||
|
||||
/* Pointer to NULL terminated list of enumerated values (like argv). */
|
||||
const char **enums;
|
||||
|
||||
/* Pointer to command strings of user-defined commands */
|
||||
struct command_line *user_commands;
|
||||
|
||||
/* 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_post;
|
||||
|
||||
/* 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;
|
||||
};
|
||||
struct cmd_list_element;
|
||||
|
||||
/* Forward-declarations of the entry-points of cli/cli-decode.c. */
|
||||
|
||||
|
@ -24,6 +24,8 @@
|
||||
#include "expression.h"
|
||||
#include "filenames.h" /* for DOSish file names */
|
||||
|
||||
#include "cli/cli-decode.h"
|
||||
|
||||
/* FIXME: This is needed because of lookup_cmd_1().
|
||||
We should be calling a hook instead so we eliminate the CLI dependency. */
|
||||
#include "gdbcmd.h"
|
||||
|
@ -36,6 +36,8 @@
|
||||
#include "objfiles.h"
|
||||
#include "value.h"
|
||||
|
||||
#include "cli/cli-decode.h"
|
||||
|
||||
extern void _initialize_maint_cmds (void);
|
||||
|
||||
static void maintenance_command (char *, int);
|
||||
|
Loading…
Reference in New Issue
Block a user