From: Andrew Burgess Date: Thu, 26 Mar 2015 14:13:57 +0000 (+0000) Subject: gdb: Add completer for layout command. X-Git-Tag: gdb-7.10-release~450 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=a014503004ad016d754bc9a4b143973ee18b0bbf;p=external%2Fbinutils.git gdb: Add completer for layout command. Add layout name completion for the layout command. gdb/ChangeLog: * tui/tui-layout.c (layout_completer): New function. (_initialize_tui_layout): Set completer on layout command. gdb/testsuite/ChangeLog: * gdb.base/completion.exp: Add test for completion of layout names. --- diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 5957824..84e6b25 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,5 +1,10 @@ 2015-05-21 Andrew Burgess + * tui/tui-layout.c (layout_completer): New function. + (_initialize_tui_layout): Set completer on layout command. + +2015-05-21 Andrew Burgess + * tui/tui-layout.c (tui_set_layout): Remove tui_register_display_type parameter. Remove all checking of this parameter, and reindent function. Update header comment. diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog index 3a947eb..49f56f4 100644 --- a/gdb/testsuite/ChangeLog +++ b/gdb/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2015-05-21 Andrew Burgess + + * gdb.base/completion.exp: Add test for completion of layout + names. + 2015-05-20 Andrew Burgess * lib/gdb.exp (skip_tui_tests): New proc. diff --git a/gdb/testsuite/gdb.base/completion.exp b/gdb/testsuite/gdb.base/completion.exp index f77bfe2..4c31bfc 100644 --- a/gdb/testsuite/gdb.base/completion.exp +++ b/gdb/testsuite/gdb.base/completion.exp @@ -859,3 +859,22 @@ gdb_test_multiple "" "$test" { pass "$test" } } + +gdb_test_no_output "set max-completions unlimited" + +if {![skip_tui_tests]} { + set test "test completion of layout names" + send_gdb "layout\t\t\t" + gdb_test_multiple "" "$test" { + -re "asm *next *prev *regs *split *src *\r\n$gdb_prompt layout $" { + pass "$test" + } + } + send_gdb "\003" + set test "quit command input after testing layout completion" + gdb_test_multiple "" "$test" { + -re "$gdb_prompt $" { + pass "$test" + } + } +} diff --git a/gdb/tui/tui-layout.c b/gdb/tui/tui-layout.c index 3a2be9b..e3993ab 100644 --- a/gdb/tui/tui-layout.c +++ b/gdb/tui/tui-layout.c @@ -350,6 +350,19 @@ tui_default_win_viewport_height (enum tui_win_type type, return h; } +/* Complete possible layout names. TEXT is the complete text entered so + far, WORD is the word currently being completed. */ + +static VEC (char_ptr) * +layout_completer (struct cmd_list_element *ignore, + const char *text, const char *word) +{ + static const char *layout_names [] = + { "src", "asm", "split", "regs", "next", "prev", NULL }; + + return complete_on_enum (layout_names, text, word); +} + /* Function to initialize gdb commands, for tui window layout manipulation. */ @@ -359,7 +372,9 @@ extern initialize_file_ftype _initialize_tui_layout; void _initialize_tui_layout (void) { - add_com ("layout", class_tui, tui_layout_command, _("\ + struct cmd_list_element *cmd; + + cmd = add_com ("layout", class_tui, tui_layout_command, _("\ Change the layout of windows.\n\ Usage: layout prev | next | \n\ Layout names are:\n\ @@ -372,6 +387,7 @@ Layout names are:\n\ source/assembly/command (split) is displayed, \n\ the register window is displayed with \n\ the window that has current logical focus.\n")); + set_cmd_completer (cmd, layout_completer); }