aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGlen McCready <gkm@pobox.com>2000-04-20 23:51:01 +0000
committerGlen McCready <gkm@pobox.com>2000-04-20 23:51:01 +0000
commit49a5a3a3e37d495246ffe43f53a41b80e7892ec3 (patch)
tree7d5dc72abbf4955bd2388ec72aa0e088735a05ce
parentaa15f6f7b026e6966aab775a87b417c9903bfeb3 (diff)
downloadgdb-49a5a3a3e37d495246ffe43f53a41b80e7892ec3.zip
gdb-49a5a3a3e37d495246ffe43f53a41b80e7892ec3.tar.gz
gdb-49a5a3a3e37d495246ffe43f53a41b80e7892ec3.tar.bz2
Fri Mar 24 12:10:38 2000 glen mccready <gkm@pobox.com>
* command.c, command.h (help_all): Add functionality to display a complete listing of available commands.
-rw-r--r--gdb/ChangeLog5
-rw-r--r--gdb/command.c27
-rw-r--r--gdb/command.h2
3 files changed, 34 insertions, 0 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 0e0f421..740a3ad 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,8 @@
+Fri Mar 24 12:10:38 2000 glen mccready <gkm@pobox.com>
+
+ * command.c, command.h (help_all): Add functionality to display
+ a complete listing of available commands.
+
2000-04-20 Scott Bambrough <scottb@netwinder.org>
* arm-linux-nat.c (PIDGET, TIDGET): New.
diff --git a/gdb/command.c b/gdb/command.c
index 737ac77..279bc68 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 20e4fd5..5121588 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 **));