This is the mail archive of the
gdb-patches@sources.redhat.com
mailing list for the GDB project.
Re: [RFA] "Help" command and completion
- From: Eli Zaretskii <eliz at is dot elta dot co dot il>
- To: Michael Snyder <msnyder at redhat dot com>
- Cc: gdb-patches at sources dot redhat dot com
- Date: Wed, 9 Jan 2002 09:53:53 +0200 (IST)
- Subject: Re: [RFA] "Help" command and completion
On Tue, 8 Jan 2002, Michael Snyder wrote:
> Michael Snyder wrote:
> >
> > Eli Zaretskii wrote:
> > >
> > > How is no completion better than completion on symbols?
> >
> > Because the symbols in the program being debugged
> > can't possibly have anything to do with gdb commands,
> > and therefore can't possibly be valid arguments for "help".
> > Not even if you're debugging gdb.
>
> OK to commit?
Personally, I'd rather have it complete on commands, like you said it
should. We already have the function to do that: complete_on_cmdlist,
so it shouldn't be too hard to make that happen.
In fact, I just took a quick attempt on that; the patch is below. It
seems to work for me. (The diffs are against stock GDB 5.1, since
that's what I happen to have on the machine I have here.)
In any case, IIRC completion is Fernando's land, so I guess we need to
wait for his word.
2002-01-09 Eli Zaretskii <eliz@is.elta.co.il>
* completer.c (command_completer): New function.
* completer.h <command_completer>: Add prototype.
* cli/cli-cmds.c (init_cli_cmds): Make command_completer be the
completer for the "help" command.
--- gdb/completer.c~0 Sun Jul 15 21:17:46 2001
+++ gdb/completer.c Wed Jan 9 09:05:48 2002
@@ -339,6 +339,14 @@ location_completer (char *text, char *wo
return list;
}
+/* Complete on command names. Used by "help". */
+char **
+command_completer (char *text, char *word)
+{
+ return complete_on_cmdlist (cmdlist, text, word);
+}
+
+
/* Here are some useful test cases for completion. FIXME: These should
be put in the test suite. They should be tested with both M-? and TAB.
--- gdb/completer.h~0 Sun Jul 15 21:17:46 2001
+++ gdb/completer.h Wed Jan 9 08:52:50 2002
@@ -29,6 +29,8 @@
extern char **location_completer (char *, char *);
+extern char **command_completer (char *, char *);
+
extern char *get_gdb_completer_word_break_characters (void);
extern char *get_gdb_completer_quote_characters (void);
--- gdb/cli/cli-cmds.c~0 Mon Jul 16 16:33:46 2001
+++ gdb/cli/cli-cmds.c Wed Jan 9 08:58:40 2002
@@ -668,7 +668,8 @@ when gdb is started.", &cmdlist);
c->completer = filename_completer;
add_com ("quit", class_support, quit_command, "Exit gdb.");
- add_com ("help", class_support, help_command, "Print list of commands.");
+ c = add_com ("help", class_support, help_command, "Print list of commands.");
+ c->completer = command_completer;
add_com_alias ("q", "quit", class_support, 1);
add_com_alias ("h", "help", class_support, 1);