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: Michael Snyder <msnyder at redhat dot com>
- To: Eli Zaretskii <eliz at is dot elta dot co dot il>
- Cc: gdb-patches at sources dot redhat dot com
- Date: Wed, 09 Jan 2002 10:22:15 -0800
- Subject: Re: [RFA] "Help" command and completion
- Organization: Red Hat, Inc.
- References: <Pine.SUN.3.91.1020109095204.655D-100000@is>
Eli Zaretskii wrote:
>
> 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.
Excellent! I was looking for that, but didn't find it.
My patch was meant to be an incremental improvement,
yours is the proper way to do things.
> 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);
>