2002-07-03 Martin M. Hunt <hunt@redhat.com>
authorMartin Hunt <hunt@redhat.com>
Wed, 3 Jul 2002 17:35:21 +0000 (17:35 +0000)
committerMartin Hunt <hunt@redhat.com>
Wed, 3 Jul 2002 17:35:21 +0000 (17:35 +0000)
* top.c (execute_command): Use cmd_func() and cmd_func_p().

* cli/cli-decode.c (cmd_func_p): New function.
(cmd_func): New function.

* command.h: Add cmd_func() and cmd_func_p().

gdb/ChangeLog
gdb/cli/cli-decode.c
gdb/command.h
gdb/top.c

index 2b5cb26..44d27b5 100644 (file)
@@ -1,3 +1,12 @@
+2002-07-03  Martin M. Hunt  <hunt@redhat.com>
+
+       * top.c (execute_command): Use cmd_func() and cmd_func_p().
+
+       * cli/cli-decode.c (cmd_func_p): New function.
+       (cmd_func): New function.
+
+       * command.h: Add cmd_func() and cmd_func_p().   
+       
 2002-07-03  Grace Sainsbury  <graces@redhat.com>
 
        * config/mcore/tm-mcore.h (GDB_MULTI_ARCH): Add macro. Set to 0.
index 098c13a..84e445e 100644 (file)
@@ -1505,3 +1505,23 @@ complete_on_enum (const char *enumlist[],
   return matchlist;
 }
 
+
+/* check function pointer */
+int
+cmd_func_p (struct cmd_list_element *cmd)
+{
+  return (cmd->func != NULL);
+}
+
+
+/* call the command function */
+void
+cmd_func (struct cmd_list_element *cmd, char *args, int from_tty)
+{
+  if (cmd_func_p (cmd))
+    (*cmd->func) (cmd, args, from_tty);
+  else
+    error ("Invalid command");
+}
+
+
index 9aceef6..96c99ab 100644 (file)
@@ -280,4 +280,10 @@ extern void dont_repeat (void);
 
 extern void not_just_help_class_command (char *, int);
 
+/* check function pointer */
+extern int cmd_func_p (struct cmd_list_element *cmd);
+
+/* call the command function */
+extern void cmd_func (struct cmd_list_element *cmd, char *args, int from_tty);
+
 #endif /* !defined (COMMAND_H) */
index 4749c38..4203f08 100644 (file)
--- a/gdb/top.c
+++ b/gdb/top.c
@@ -703,12 +703,12 @@ execute_command (char *p, int from_tty)
        execute_user_command (c, arg);
       else if (c->type == set_cmd || c->type == show_cmd)
        do_setshow_command (arg, from_tty & caution, c);
-      else if (c->func == NULL)
+      else if (!cmd_func_p (c))
        error ("That is not a command, just a help topic.");
       else if (call_command_hook)
        call_command_hook (c, arg, from_tty & caution);
       else
-       (*c->func) (c, arg, from_tty & caution);
+       cmd_func (c, arg, from_tty & caution);
        
       /* If this command has been post-hooked, run the hook last. */
       execute_cmd_post_hook (c);