This is the mail archive of the gdb-patches@sources.redhat.com mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [RFA] "Help" command and completion


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);
>


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]