(set_cmd_context, get_cmd_context): Declare.
* cli/cli-decode.h: Ditto.
* cli/cli-decode.c (get_cmd_context): New function.
(set_cmd_context): New function.
(add_cmd): Initialize context.
Part of fixing PR gdb/145 and PR gdb/146.
+2002-03-18 Andrew Cagney <ac131313@redhat.com>
+
+ * command.h (struct cmd_list_element): Add field context.
+ (set_cmd_context, get_cmd_context): Declare.
+ * cli/cli-decode.h: Ditto.
+ * cli/cli-decode.c (get_cmd_context): New function.
+ (set_cmd_context): New function.
+ (add_cmd): Initialize context.
+ Part of fixing PR gdb/145 and PR gdb/146.
+
2002-03-17 Andrew Cagney <ac131313@redhat.com>
* cli/cli-decode.c (cmd_type): New function.
return cmd->func == do_cfunc && cmd->function.cfunc == cfunc;
}
+void
+set_cmd_context (struct cmd_list_element *cmd, void *context)
+{
+ cmd->context = context;
+}
+
+void *
+get_cmd_context (struct cmd_list_element *cmd)
+{
+ return cmd->context;
+}
+
enum cmd_types
cmd_type (struct cmd_list_element *cmd)
{
c->name = name;
c->class = class;
set_cmd_cfunc (c, fun);
+ set_cmd_context (c, NULL);
c->doc = doc;
c->flags = 0;
c->replacement = NULL;
}
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.
extern int cmd_cfunc_eq (struct cmd_list_element *cmd,
void (*cfunc) (char *args, int from_tty));
+/* Access to the command's local context. */
+extern void set_cmd_context (struct cmd_list_element *cmd, void *context);
+extern void *get_cmd_context (struct cmd_list_element *cmd);
+
extern struct cmd_list_element *lookup_cmd (char **,
struct cmd_list_element *, char *,
int, int);
}
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.
extern int cmd_cfunc_eq (struct cmd_list_element *cmd,
void (*cfunc) (char *args, int from_tty));
+/* Each command object has a local context attached to it. . */
+extern void set_cmd_context (struct cmd_list_element *cmd, void *context);
+extern void *get_cmd_context (struct cmd_list_element *cmd);
+
+
/* Execute CMD's pre/post hook. Throw an error if the command fails.
If already executing this pre/post hook, or there is no pre/post
hook, the call is silently ignored. */