mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2024-11-23 18:14:13 +08:00
gdb
* completer.c (complete_line_internal): New function, from complete_line. Add 'for_help' parameter. (complete_line): Use it. (command_completer): Move later. Rewrite. gdb/testsuite * gdb.base/completion.exp: Add 'help' completion test.
This commit is contained in:
parent
65fc9b7721
commit
14032a66f1
@ -1,3 +1,10 @@
|
||||
2008-07-11 Tom Tromey <tromey@redhat.com>
|
||||
|
||||
* completer.c (complete_line_internal): New function, from
|
||||
complete_line. Add 'for_help' parameter.
|
||||
(complete_line): Use it.
|
||||
(command_completer): Move later. Rewrite.
|
||||
|
||||
2008-07-11 Pedro Alves <pedro@codesourcery.com>
|
||||
|
||||
* thread.c (thread_apply_command): Move making the cleanup out of
|
||||
|
@ -429,14 +429,6 @@ expression_completer (char *text, char *word)
|
||||
return location_completer (p, word);
|
||||
}
|
||||
|
||||
/* 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.
|
||||
|
||||
@ -467,10 +459,16 @@ command_completer (char *text, char *word)
|
||||
|
||||
LINE_BUFFER is available to be looked at; it contains the entire text
|
||||
of the line. POINT is the offset in that line of the cursor. You
|
||||
should pretend that the line ends at POINT. */
|
||||
should pretend that the line ends at POINT.
|
||||
|
||||
FOR_HELP is true when completing a 'help' command. In this case,
|
||||
once sub-command completions are exhausted, we simply return NULL.
|
||||
When FOR_HELP is false, we will call a sub-command's completion
|
||||
function. */
|
||||
|
||||
char **
|
||||
complete_line (const char *text, char *line_buffer, int point)
|
||||
static char **
|
||||
complete_line_internal (const char *text, char *line_buffer, int point,
|
||||
int for_help)
|
||||
{
|
||||
char **list = NULL;
|
||||
char *tmp_command, *p;
|
||||
@ -583,6 +581,8 @@ complete_line (const char *text, char *line_buffer, int point)
|
||||
rl_completer_word_break_characters =
|
||||
gdb_completer_command_word_break_characters;
|
||||
}
|
||||
else if (for_help)
|
||||
list = NULL;
|
||||
else if (c->enums)
|
||||
{
|
||||
list = complete_on_enum (c->enums, p, word);
|
||||
@ -650,6 +650,8 @@ complete_line (const char *text, char *line_buffer, int point)
|
||||
gdb_completer_command_word_break_characters;
|
||||
}
|
||||
}
|
||||
else if (for_help)
|
||||
list = NULL;
|
||||
else
|
||||
{
|
||||
/* There is non-whitespace beyond the command. */
|
||||
@ -695,6 +697,21 @@ complete_line (const char *text, char *line_buffer, int point)
|
||||
return list;
|
||||
}
|
||||
|
||||
/* Like complete_line_internal, but always passes 0 for FOR_HELP. */
|
||||
|
||||
char **
|
||||
complete_line (const char *text, char *line_buffer, int point)
|
||||
{
|
||||
return complete_line_internal (text, line_buffer, point, 0);
|
||||
}
|
||||
|
||||
/* Complete on command names. Used by "help". */
|
||||
char **
|
||||
command_completer (char *text, char *word)
|
||||
{
|
||||
return complete_line_internal (word, text, strlen (text), 1);
|
||||
}
|
||||
|
||||
/* Generate completions one by one for the completer. Each time we are
|
||||
called return another potential completion to the caller.
|
||||
line_completion just completes on commands or passes the buck to the
|
||||
|
@ -1,3 +1,7 @@
|
||||
2008-07-11 Tom Tromey <tromey@redhat.com>
|
||||
|
||||
* gdb.base/completion.exp: Add 'help' completion test.
|
||||
|
||||
2008-07-10 Jan Kratochvil <jan.kratochvil@redhat.com>
|
||||
|
||||
* gdb.base/randomize.exp: Remove dependency on tcl-8.4+.
|
||||
|
@ -364,6 +364,23 @@ gdb_expect {
|
||||
}
|
||||
|
||||
|
||||
send_gdb "help info wat\t"
|
||||
gdb_expect {
|
||||
-re "^help info watchpoints $"\
|
||||
{ send_gdb "\n"
|
||||
gdb_expect {
|
||||
-re "Synonym for .*\r\n.*$gdb_prompt $"\
|
||||
{ pass "complete help info wat" }
|
||||
-re ".*$gdb_prompt $" { fail "complete help info wat"}
|
||||
timeout {fail "(timeout) complete help info wat"}
|
||||
}
|
||||
}
|
||||
-re "^help info wat\\\x07$" { fail "complete (2) help info wat" }
|
||||
-re ".*$gdb_prompt $" { fail "complete (3) help info wat" }
|
||||
timeout { fail "(timeout) complete (3) help info wat" }
|
||||
}
|
||||
|
||||
|
||||
send_gdb "p \"break1\t"
|
||||
sleep 1
|
||||
gdb_expect {
|
||||
|
Loading…
Reference in New Issue
Block a user