From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 1726) id 4E7623858413; Sun, 3 Apr 2022 14:42:48 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 4E7623858413 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable From: Andrew Burgess To: gdb-cvs@sourceware.org Subject: [binutils-gdb] gdb: move some commands into the tui namespace X-Act-Checkin: binutils-gdb X-Git-Author: Andrew Burgess X-Git-Refname: refs/heads/master X-Git-Oldrev: 6e348286d89738a7093602faba74ffe7e16eb926 X-Git-Newrev: 51c2a9e24396f69c1e7eba6cef042fad7c07880e Message-Id: <20220403144248.4E7623858413@sourceware.org> Date: Sun, 3 Apr 2022 14:42:48 +0000 (GMT) X-BeenThere: gdb-cvs@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gdb-cvs mailing list List-Unsubscribe: , List-Archive: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 03 Apr 2022 14:42:48 -0000 https://sourceware.org/git/gitweb.cgi?p=3Dbinutils-gdb.git;h=3D51c2a9e24396= f69c1e7eba6cef042fad7c07880e commit 51c2a9e24396f69c1e7eba6cef042fad7c07880e Author: Andrew Burgess Date: Mon Jan 24 17:23:20 2022 +0000 gdb: move some commands into the tui namespace =20 There are a lot of tui related commands that live in the top-level command name space, e.g. layout, focus, refresh, winheight. =20 Having them at the top level means less typing for the user, which is good, but, I think, makes command discovery harder. =20 In this commit, I propose moving all of the above mentioned commands into the tui namespace, so 'layout' becomes 'tui layout', etc. But I will then add aliases so that the old commands will still work, e.g. I'll make 'layout' an alias for 'tui layout'. =20 The benefit I see in this work is that tui related commands can be more easily discovered by typing 'tui ' and then tab-completing. Also the "official" command is now a tui-sub-command, this is visible in, for example, the help output, e.g.: =20 (gdb) help layout tui layout, layout Change the layout of windows. Usage: tui layout prev | next | LAYOUT-NAME =20 List of tui layout subcommands: =20 tui layout asm -- Apply the "asm" layout. tui layout next -- Apply the next TUI layout. tui layout prev -- Apply the previous TUI layout. tui layout regs -- Apply the TUI register layout. tui layout split -- Apply the "split" layout. tui layout src -- Apply the "src" layout. =20 Which I think is a good thing, it makes it clearer that this is a tui command. =20 I've added a NEWS entry and updated the docs to mention the new and old command names, with the new name being mentioned first. Diff: --- gdb/NEWS | 15 +++++++++++++++ gdb/doc/gdb.texinfo | 18 +++++++++++++----- gdb/tui/tui-layout.c | 16 +++++++++++++--- gdb/tui/tui-win.c | 40 ++++++++++++++++++++++++++++++++-------- 4 files changed, 73 insertions(+), 16 deletions(-) diff --git a/gdb/NEWS b/gdb/NEWS index 0fbc4537303..10090aff0b4 100644 --- a/gdb/NEWS +++ b/gdb/NEWS @@ -140,6 +140,14 @@ show ada source-charset values for this follow the values that can be passed to the GNAT compiler via the '-gnati' option. The default is ISO-8859-1. =20 +tui layout +tui focus +tui refresh +tui window height + These are the new names for the old 'layout', 'focus', 'refresh', + and 'winheight' tui commands respectively. The old names still + exist as aliases to these new commands. + * Changed commands =20 print @@ -171,6 +179,13 @@ info win This command now includes information about the width of the tui windows in its output. =20 +layout +focus +refresh +winheight + These commands are now aliases for the 'tui layout', 'tui focus', + 'tui refresh', and 'tui window height' commands respectively. + * GDB's Ada parser now supports an extension for specifying the exact byte contents of a floating-point literal. This can be useful for setting floating-point registers to a precise value without loss of diff --git a/gdb/doc/gdb.texinfo b/gdb/doc/gdb.texinfo index d21fd0d3f0a..4aec2e81e9a 100644 --- a/gdb/doc/gdb.texinfo +++ b/gdb/doc/gdb.texinfo @@ -29005,8 +29005,10 @@ status and command window being beneath these, fil= ling the entire width of the terminal. Because they have weight 2, the source and assembly windows will be twice the height of the command window. =20 -@item layout @var{name} +@kindex tui layout @kindex layout +@item tui layout @var{name} +@itemx layout @var{name} Changes which TUI windows are displayed. The @var{name} parameter controls which layout is shown. It can be either one of the built-in layout names, or the name of a layout defined by the user using @@ -29036,8 +29038,9 @@ windows. When in @code{asm} or @code{split} layout= display the register, assembler, and command windows. @end table =20 -@item focus @var{name} @kindex focus +@item tui focus @var{name} +@itemx focus @var{name} Changes which TUI window is currently active for scrolling. The @var{name} parameter can be any of the following: =20 @@ -29061,8 +29064,10 @@ Make the register window active for scrolling. Make the command window active for scrolling. @end table =20 -@item refresh +@kindex tui refresh @kindex refresh +@item tui refresh +@itemx refresh Refresh the screen. This is similar to typing @kbd{C-L}. =20 @item tui reg @var{group} @@ -29098,9 +29103,12 @@ Display all registers. @kindex update Update the source window and the current execution point. =20 -@item winheight @var{name} +@var{count} -@itemx winheight @var{name} -@var{count} +@kindex tui window height @kindex winheight +@item tui window height @var{name} +@var{count} +@itemx tui window height @var{name} -@var{count} +@itemx winheight @var{name} +@var{count} +@itemx winheight @var{name} -@var{count} Change the height of the window @var{name} by @var{count} lines. Positive counts increase the height, while negative counts decrease it. The @var{name} parameter can be the name of any currently visible diff --git a/gdb/tui/tui-layout.c b/gdb/tui/tui-layout.c index 6195ca18a32..04e5ac24ef9 100644 --- a/gdb/tui/tui-layout.c +++ b/gdb/tui/tui-layout.c @@ -839,6 +839,14 @@ destroy_layout (struct cmd_list_element *self, void *c= ontext) =20 static struct cmd_list_element *layout_list; =20 +/* Called to implement 'tui layout'. */ + +static void +tui_layout_command (const char *args, int from_tty) +{ + help_list (layout_list, "tui layout ", all_commands, gdb_stdout); +} + /* Add a "layout" command with name NAME that switches to LAYOUT. */ =20 static struct cmd_list_element * @@ -1017,10 +1025,12 @@ void _initialize_tui_layout (); void _initialize_tui_layout () { - add_basic_prefix_cmd ("layout", class_tui, _("\ + struct cmd_list_element *layout_cmd + =3D add_prefix_cmd ("layout", class_tui, tui_layout_command, _("\ Change the layout of windows.\n\ -Usage: layout prev | next | LAYOUT-NAME"), - &layout_list, 0, &cmdlist); +Usage: tui layout prev | next | LAYOUT-NAME"), + &layout_list, 0, tui_get_cmd_list ()); + add_com_alias ("layout", layout_cmd, class_tui, 0); =20 add_cmd ("next", class_tui, tui_next_layout_command, _("Apply the next TUI layout."), diff --git a/gdb/tui/tui-win.c b/gdb/tui/tui-win.c index b95d72dc33a..13718611494 100644 --- a/gdb/tui/tui-win.c +++ b/gdb/tui/tui-win.c @@ -977,6 +977,18 @@ parse_scrolling_args (const char *arg, } } =20 +/* The list of 'tui window' sub-commands. */ + +static cmd_list_element *tui_window_cmds =3D nullptr; + +/* Called to implement 'tui window'. */ + +static void +tui_window_command (const char *args, int from_tty) +{ + help_list (tui_window_cmds, "tui window ", all_commands, gdb_stdout); +} + /* Function to initialize gdb commands, for tui window manipulation. */ =20 @@ -995,8 +1007,11 @@ _initialize_tui_win () &tui_setlist, &tui_showlist, &setlist, &showlist); =20 - add_com ("refresh", class_tui, tui_refresh_all_command, - _("Refresh the terminal display.")); + cmd_list_element *refresh_cmd + =3D add_cmd ("refresh", class_tui, tui_refresh_all_command, + _("Refresh the terminal display."), + tui_get_cmd_list ()); + add_com_alias ("refresh", refresh_cmd, class_tui, 0); =20 cmd_list_element *tabset_cmd =3D add_com ("tabset", class_tui, tui_set_tab_width_command, _("\ @@ -1004,21 +1019,30 @@ Set the width (in characters) of tab stops.\n\ Usage: tabset N")); deprecate_cmd (tabset_cmd, "set tui tab-width"); =20 + /* Setup the 'tui window' list of command. */ + add_prefix_cmd ("window", class_tui, tui_window_command, + _("Text User Interface window commands."), + &tui_window_cmds, 1, tui_get_cmd_list ()); + cmd_list_element *winheight_cmd - =3D add_com ("winheight", class_tui, tui_set_win_height_command, _("\ + =3D add_cmd ("height", class_tui, tui_set_win_height_command, _("\ Set or modify the height of a specified window.\n\ -Usage: winheight WINDOW-NAME [+ | -] NUM-LINES\n\ -Use \"info win\" to see the names of the windows currently being displayed= .")); +Usage: tui window height WINDOW-NAME [+ | -] NUM-LINES\n\ +Use \"info win\" to see the names of the windows currently being displayed= ."), + &tui_window_cmds); + add_com_alias ("winheight", winheight_cmd, class_tui, 0); add_com_alias ("wh", winheight_cmd, class_tui, 0); set_cmd_completer (winheight_cmd, winheight_completer); add_info ("win", tui_all_windows_info, _("List of all displayed windows.\n\ Usage: info win")); cmd_list_element *focus_cmd - =3D add_com ("focus", class_tui, tui_set_focus_command, _("\ + =3D add_cmd ("focus", class_tui, tui_set_focus_command, _("\ Set focus to named window or next/prev window.\n\ -Usage: focus [WINDOW-NAME | next | prev]\n\ -Use \"info win\" to see the names of the windows currently being displayed= .")); +Usage: tui focus [WINDOW-NAME | next | prev]\n\ +Use \"info win\" to see the names of the windows currently being displayed= ."), + tui_get_cmd_list ()); + add_com_alias ("focus", focus_cmd, class_tui, 0); add_com_alias ("fs", focus_cmd, class_tui, 0); set_cmd_completer (focus_cmd, focus_completer); add_com ("+", class_tui, tui_scroll_forward_command, _("\