aboutsummaryrefslogtreecommitdiff
path: root/gdb/cli
diff options
context:
space:
mode:
authorAndrew Cagney <cagney@redhat.com>2002-02-23 20:12:13 +0000
committerAndrew Cagney <cagney@redhat.com>2002-02-23 20:12:13 +0000
commitbbaca940ebb8624260af6a0569b57cf4d32cf8c9 (patch)
treec8b3b3f60920b696964de3dcb1aa240dfd16f06a /gdb/cli
parentb8b8b04721a9b0a677ecd66aa03e3e322d988385 (diff)
downloadbinutils-bbaca940ebb8624260af6a0569b57cf4d32cf8c9.zip
binutils-bbaca940ebb8624260af6a0569b57cf4d32cf8c9.tar.gz
binutils-bbaca940ebb8624260af6a0569b57cf4d32cf8c9.tar.bz2
* cli/cli-decode.c (cmd_cfunc_eq): New function.
* command.h (cmd_cfunc_eq): Declare. * cli/cli-decode.h (cmd_cfunc_eq): 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_cfunc_eq. * top.c (execute_command): Pass the command to is_complete_command. * tracepoint.c: Replace function.cfunc with cmd_cfunc_eq.
Diffstat (limited to 'gdb/cli')
-rw-r--r--gdb/cli/cli-cmds.c5
-rw-r--r--gdb/cli/cli-cmds.h2
-rw-r--r--gdb/cli/cli-decode.c7
-rw-r--r--gdb/cli/cli-decode.h4
4 files changed, 15 insertions, 3 deletions
diff --git a/gdb/cli/cli-cmds.c b/gdb/cli/cli-cmds.c
index 9d9d9ce..16cc989 100644
--- a/gdb/cli/cli-cmds.c
+++ b/gdb/cli/cli-cmds.c
@@ -259,9 +259,10 @@ complete_command (char *arg, int from_tty)
}
}
-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 (c, complete_command);
}
/* ARGSUSED */
diff --git a/gdb/cli/cli-cmds.h b/gdb/cli/cli-cmds.h
index d1515cd..a6e574e 100644
--- a/gdb/cli/cli-cmds.h
+++ b/gdb/cli/cli-cmds.h
@@ -105,7 +105,7 @@ void init_cmd_lists (void);
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 */
diff --git a/gdb/cli/cli-decode.c b/gdb/cli/cli-decode.c
index d64b2f6..a13b7b8 100644
--- a/gdb/cli/cli-decode.c
+++ b/gdb/cli/cli-decode.c
@@ -79,6 +79,13 @@ set_cmd_sfunc (struct cmd_list_element *cmd,
cmd->function.sfunc = sfunc; /* Ok. */
}
+int
+cmd_cfunc_eq (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
diff --git a/gdb/cli/cli-decode.h b/gdb/cli/cli-decode.h
index 6c7c22b..e4b7c55 100644
--- a/gdb/cli/cli-decode.h
+++ b/gdb/cli/cli-decode.h
@@ -286,6 +286,10 @@ extern void set_cmd_sfunc (struct cmd_list_element *cmd,
void (*sfunc) (char *args, int from_tty,
struct cmd_list_element * c));
+/* HACK: cagney/2002-02-23: Code, mostly in tracepoints.c, grubs
+ around in cmd objects to test the value of the commands sfunc(). */
+extern int cmd_cfunc_eq (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 *,