This is the mail archive of the
gdb-patches@sources.redhat.com
mailing list for the GDB project.
[rfa:cli] More c->function.cfunc zapping
- From: Andrew Cagney <ac131313 at cygnus dot com>
- To: gdb-patches at sources dot redhat dot com
- Date: Sun, 10 Feb 2002 21:47:06 -0500
- Subject: [rfa:cli] More c->function.cfunc zapping
Hello,
This patch zaps a few more instances of function.cfunc in the core-code.
It isn't elegant but hopefully it is better than the existing code.
Ok?
Andrew
2002-02-10 Andrew Cagney <ac131313@redhat.com>
* cli/cli-decode.c (cmd_cfunc_eq_hack): New function.
* command.h (cmd_cfunc_eq_hack): Declare.
* cli/cli-decode.h (cmd_func_eq_hack): Ditto.
* cli/cli-cmds.h (is_complete_command): Change parameter to a
``struct cmd_list_element *''.
* cli/cli-cmds.c (is_complete_command): Update. Use
cmd_func_eq_hack.
* top.c (execute_command): Pass the command to
is_complete_command.
* tracepoint.c: Replace function.cfunc with cmd_func_eq_hack.
Index: command.h
===================================================================
RCS file: /cvs/src/src/gdb/command.h,v
retrieving revision 1.22
diff -u -r1.22 command.h
--- command.h 2002/02/05 04:37:21 1.22
+++ command.h 2002/02/11 02:42:55
@@ -292,6 +292,9 @@
void (*sfunc) (char *args, int from_tty,
struct cmd_list_element * c));
+/* HACK: Code grubs around in cmd objects to test the sfunc(). */
+extern int cmd_cfunc_eq_hack (struct cmd_list_element *cmd,
+ void (*cfunc) (char *args, int from_tty));
extern struct cmd_list_element *lookup_cmd (char **,
struct cmd_list_element *, char *,
Index: top.c
===================================================================
RCS file: /cvs/src/src/gdb/top.c,v
retrieving revision 1.56
diff -u -r1.56 top.c
--- top.c 2002/02/10 04:08:42 1.56
+++ top.c 2002/02/11 02:43:12
@@ -684,7 +684,7 @@
command. */
if (arg
&& c->type != set_cmd
- && !is_complete_command (c->function.cfunc))
+ && !is_complete_command (c))
{
p = arg + strlen (arg) - 1;
while (p >= arg && (*p == ' ' || *p == '\t'))
Index: tracepoint.c
===================================================================
RCS file: /cvs/src/src/gdb/tracepoint.c,v
retrieving revision 1.32
diff -u -r1.32 tracepoint.c
--- tracepoint.c 2002/02/05 04:37:22 1.32
+++ tracepoint.c 2002/02/11 02:43:14
@@ -939,7 +939,7 @@
return BADLINE;
}
- if (c->function.cfunc == collect_pseudocommand)
+ if (cmd_cfunc_eq_hack (c, collect_pseudocommand))
{
struct agent_expr *aexpr;
struct agent_reqs areqs;
@@ -1006,7 +1006,7 @@
while (p && *p++ == ',');
return GENERIC;
}
- else if (c->function.cfunc == while_stepping_pseudocommand)
+ else if (cmd_cfunc_eq_hack (c, while_stepping_pseudocommand))
{
char *steparg; /* in case warning is necessary */
@@ -1022,7 +1022,7 @@
}
return STEPPING;
}
- else if (c->function.cfunc == end_actions_pseudocommand)
+ else if (cmd_cfunc_eq_hack (c, end_actions_pseudocommand))
return END;
else
{
@@ -1520,7 +1520,7 @@
if (cmd == 0)
error ("Bad action list item: %s", action_exp);
- if (cmd->function.cfunc == collect_pseudocommand)
+ if (cmd_cfunc_eq_hack (cmd, collect_pseudocommand))
{
do
{ /* repeat over a comma-separated list */
@@ -1630,11 +1630,11 @@
}
while (action_exp && *action_exp++ == ',');
} /* if */
- else if (cmd->function.cfunc == while_stepping_pseudocommand)
+ else if (cmd_cfunc_eq_hack (cmd, while_stepping_pseudocommand))
{
collect = &stepping_list;
}
- else if (cmd->function.cfunc == end_actions_pseudocommand)
+ else if (cmd_cfunc_eq_hack (cmd, end_actions_pseudocommand))
{
if (collect == &stepping_list) /* end stepping actions */
collect = &tracepoint_list;
@@ -2315,9 +2315,9 @@
cmd = lookup_cmd (&actionline, cmdlist, "", -1, 1);
if (cmd == 0)
error ("Bad action list item: %s", actionline);
- if (cmd->function.cfunc == while_stepping_pseudocommand)
+ if (cmd_cfunc_eq_hack (cmd, while_stepping_pseudocommand))
indent = i2;
- else if (cmd->function.cfunc == end_actions_pseudocommand)
+ else if (cmd_cfunc_eq_hack (cmd, end_actions_pseudocommand))
indent = i1;
}
}
@@ -2534,11 +2534,11 @@
if (cmd == 0)
error ("Bad action list item: %s", action_exp);
- if (cmd->function.cfunc == while_stepping_pseudocommand)
+ if (cmd_cfunc_eq_hack (cmd, while_stepping_pseudocommand))
stepping_actions = 1;
- else if (cmd->function.cfunc == end_actions_pseudocommand)
+ else if (cmd_cfunc_eq_hack (cmd, end_actions_pseudocommand))
stepping_actions = 0;
- else if (cmd->function.cfunc == collect_pseudocommand)
+ else if (cmd_cfunc_eq_hack (cmd, collect_pseudocommand))
{
/* Display the collected data.
For the trap frame, display only what was collected at the trap.
Index: cli/cli-cmds.c
===================================================================
RCS file: /cvs/src/src/gdb/cli/cli-cmds.c,v
retrieving revision 1.14
diff -u -r1.14 cli-cmds.c
--- cli-cmds.c 2002/02/05 04:37:23 1.14
+++ cli-cmds.c 2002/02/11 02:43:14
@@ -226,9 +226,10 @@
}
}
-int is_complete_command (void (*func) (char *args, int from_tty))
+int
+is_complete_command (struct cmd_list_element *c)
{
- return func == complete_command;
+ return cmd_cfunc_eq_hack (c, complete_command);
}
/* ARGSUSED */
Index: cli/cli-cmds.h
===================================================================
RCS file: /cvs/src/src/gdb/cli/cli-cmds.h,v
retrieving revision 1.2
diff -u -r1.2 cli-cmds.h
--- cli-cmds.h 2001/03/06 08:21:19 1.2
+++ cli-cmds.h 2002/02/11 02:43:14
@@ -105,7 +105,7 @@
void init_cli_cmds (void);
-int is_complete_command (void (*func) (char *args, int from_tty));
+int is_complete_command (struct cmd_list_element *cmd);
/* Exported to gdb/main.c */
Index: cli/cli-decode.c
===================================================================
RCS file: /cvs/src/src/gdb/cli/cli-decode.c,v
retrieving revision 1.13
diff -u -r1.13 cli-decode.c
--- cli-decode.c 2002/02/05 04:37:23 1.13
+++ cli-decode.c 2002/02/11 02:43:36
@@ -79,6 +79,13 @@
cmd->function.sfunc = sfunc; /* Ok. */
}
+int
+cmd_cfunc_eq_hack (struct cmd_list_element *cmd,
+ void (*cfunc) (char *args, int from_tty))
+{
+ return cmd->func == do_cfunc && cmd->function.cfunc == cfunc;
+}
+
/* Add element named NAME.
CLASS is the top level category into which commands are broken down
Index: cli/cli-decode.h
===================================================================
RCS file: /cvs/src/src/gdb/cli/cli-decode.h,v
retrieving revision 1.7
diff -u -r1.7 cli-decode.h
--- cli-decode.h 2002/02/05 04:37:23 1.7
+++ cli-decode.h 2002/02/11 02:43:37
@@ -286,6 +286,9 @@
void (*sfunc) (char *args, int from_tty,
struct cmd_list_element * c));
+/* HACK: Code grubs around in cmd objects to test the sfunc(). */
+extern int cmd_cfunc_eq_hack (struct cmd_list_element *cmd,
+ void (*cfunc) (char *args, int from_tty));
extern struct cmd_list_element *lookup_cmd (char **,
struct cmd_list_element *, char *,