From 49a5a3a3e37d495246ffe43f53a41b80e7892ec3 Mon Sep 17 00:00:00 2001 From: Glen McCready Date: Thu, 20 Apr 2000 23:51:01 +0000 Subject: [PATCH] Fri Mar 24 12:10:38 2000 glen mccready * command.c, command.h (help_all): Add functionality to display a complete listing of available commands. --- gdb/ChangeLog | 5 +++++ gdb/command.c | 27 +++++++++++++++++++++++++++ gdb/command.h | 2 ++ 3 files changed, 34 insertions(+) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 0e0f421a6f9..740a3adaa4c 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,8 @@ +Fri Mar 24 12:10:38 2000 glen mccready + + * command.c, command.h (help_all): Add functionality to display + a complete listing of available commands. + 2000-04-20 Scott Bambrough * arm-linux-nat.c (PIDGET, TIDGET): New. diff --git a/gdb/command.c b/gdb/command.c index 737ac771222..279bc68f388 100644 --- a/gdb/command.c +++ b/gdb/command.c @@ -510,6 +510,12 @@ help_cmd (command, stream) return; } + if (strcmp (command, "all") == 0) + { + help_all (stream); + return; + } + c = lookup_cmd (&command, cmdlist, "", 0, 0); if (c == 0) @@ -602,6 +608,27 @@ Command name abbreviations are allowed if unambiguous.\n", cmdtype1, cmdtype2); } +static void +help_all (stream) + struct ui_file *stream; +{ + struct cmd_list_element *c; + extern struct cmd_list_element *cmdlist; + + for (c = cmdlist; c; c = c->next) + { + if (c->abbrev_flag) + continue; + /* If this is a prefix command, print it's subcommands */ + if (c->prefixlist) + help_cmd_list (*c->prefixlist, all_commands, c->prefixname, 0, stream); + + /* If this is a class name, print all of the commands in the class */ + else if (c->function.cfunc == NULL) + help_cmd_list (cmdlist, c->class, "", 0, stream); + } +} + /* Print only the first line of STR on STREAM. */ static void print_doc_line (stream, str) diff --git a/gdb/command.h b/gdb/command.h index 20e4fd50ed6..51215888f09 100644 --- a/gdb/command.h +++ b/gdb/command.h @@ -284,6 +284,8 @@ extern void help_list (struct cmd_list_element *, char *, extern void help_cmd_list (struct cmd_list_element *, enum command_class, char *, int, struct ui_file *); +extern void help_all (struct ui_file *); + extern struct cmd_list_element * add_set_cmd PARAMS ((char *, enum command_class, var_types, char *, char *, struct cmd_list_element **)); -- 2.30.2