public inbox for gdb-patches@sourceware.org
 help / color / mirror / Atom feed
From: Andrew Burgess <aburgess@redhat.com>
To: gdb-patches@sourceware.org
Subject: Re: [PATCH 1/7] gdb/tui: add window width information to 'info win' output
Date: Sun, 6 Feb 2022 13:43:12 +0000	[thread overview]
Message-ID: <20220206134312.GC2706@redhat.com> (raw)
In-Reply-To: <8a07632c8949a934306406f22a5c659018cd1d39.1643385021.git.aburgess@redhat.com>

* Andrew Burgess <aburgess@redhat.com> [2022-01-28 15:55:02 +0000]:

> Now that we support horizontal window placement in the tui, it makes
> sense to have 'info win' include the width, as well as the height, of
> the currently visible windows.
> 
> That's what this commit does.  Example output is now:
> 
>   (gdb) info win
>   Name       Lines Columns Focus
>   src           12      40 (has focus)
>   asm           12      41
>   status         1      80
>   cmd           11      80
> 
> I've added a NEWS entry, but the documentation was already suitably
> vague, it just says that 'info win' displays the size of the visible
> windows, so I don't think anything needs to be added there.
> 
> I've also added some tests, as far as I could find, the 'info win'
> command was previously untested.

I've gone ahead and pushed this patch, I think this is the obvious
solution for adding this information to gdb.

If anyone disagrees, feel free to say.

Thanks,
Andrew



> ---
>  gdb/NEWS                           |  4 ++
>  gdb/testsuite/gdb.tui/info-win.exp | 61 ++++++++++++++++++++++++++++++
>  gdb/tui/tui-win.c                  |  4 +-
>  3 files changed, 68 insertions(+), 1 deletion(-)
>  create mode 100644 gdb/testsuite/gdb.tui/info-win.exp
> 
> diff --git a/gdb/NEWS b/gdb/NEWS
> index e1900596ca7..8da68c88def 100644
> --- a/gdb/NEWS
> +++ b/gdb/NEWS
> @@ -102,6 +102,10 @@ show debug lin-lwp
>    debug linux-nat' and 'show debug linux-nat' should be used
>    instead.
>  
> +info win
> +  This command now includes information about the width of the tui
> +  windows in its output.
> +
>  * Python API
>  
>    ** New function gdb.add_history(), which takes a gdb.Value object
> diff --git a/gdb/testsuite/gdb.tui/info-win.exp b/gdb/testsuite/gdb.tui/info-win.exp
> new file mode 100644
> index 00000000000..2607d5be493
> --- /dev/null
> +++ b/gdb/testsuite/gdb.tui/info-win.exp
> @@ -0,0 +1,61 @@
> +# Copyright 2022 Free Software Foundation, Inc.
> +
> +# This program is free software; you can redistribute it and/or modify
> +# it under the terms of the GNU General Public License as published by
> +# the Free Software Foundation; either version 3 of the License, or
> +# (at your option) any later version.
> +#
> +# This program is distributed in the hope that it will be useful,
> +# but WITHOUT ANY WARRANTY; without even the implied warranty of
> +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
> +# GNU General Public License for more details.
> +#
> +# You should have received a copy of the GNU General Public License
> +# along with this program.  If not, see <http://www.gnu.org/licenses/>.
> +
> +# Test 'info win'.
> +
> +tuiterm_env
> +
> +standard_testfile
> +
> +Term::clean_restart 24 80
> +
> +if {![Term::enter_tui]} {
> +    unsupported "TUI not supported"
> +    return
> +}
> +
> +Term::command "layout src"
> +Term::command "info win"
> +Term::check_region_contents "info win, layout src" \
> +    0 16 80 8 [multi_line "info win\\s+" \
> +		   "Name\\s+Lines\\s+Columns\\s+Focus\\s+" \
> +		   "src\\s+15\\s+80\\s+\\(has focus\\)\\s+" \
> +		   "status\\s+1\\s+80\\s+" \
> +		   "cmd\\s+8\\s+80\\s+"]
> +
> +Term::command "tui new-layout h { -horizontal src 1 asm 1 } 1 status 0 cmd 1"
> +Term::command "layout h"
> +Term::command "winheight cmd + 3"
> +
> +# As the tuiterm.exp library just waits for the prompt and command to
> +# be echo'ed bcak to the screen, multiple 'info win' calls like this
> +# have a problem.  Dejagnu will send the command to gdb, but will then
> +# immediately see the '(gdb) info win' output from the first use
> +# above.  This means we end up rushing ahead, and some tests might
> +# fail.
> +#
> +# To work around this, I'm sending a unique command 'p 1' here, that
> +# only happens after the second 'info win' call.  When the 'p 1'
> +# completes, I know the second 'info win' has also completed.
> +Term::command "info win"
> +Term::command "p 1"
> +
> +Term::check_region_contents "info win, layout h" \
> +    0 13 80 11 [multi_line "info win\\s+" \
> +		   "Name\\s+Lines\\s+Columns\\s+Focus\\s+" \
> +		   "src\\s+12\\s+40\\s+\\(has focus\\)\\s+" \
> +		   "asm\\s+12\\s+41\\s+" \
> +		   "status\\s+1\\s+80\\s+" \
> +		   "cmd\\s+11\\s+80\\s+"]
> diff --git a/gdb/tui/tui-win.c b/gdb/tui/tui-win.c
> index c85dfd4e882..fd6ca59a728 100644
> --- a/gdb/tui/tui-win.c
> +++ b/gdb/tui/tui-win.c
> @@ -714,9 +714,10 @@ tui_all_windows_info (const char *arg, int from_tty)
>    struct tui_win_info *win_with_focus = tui_win_with_focus ();
>    struct ui_out *uiout = current_uiout;
>  
> -  ui_out_emit_table table_emitter (uiout, 3, -1, "tui-windows");
> +  ui_out_emit_table table_emitter (uiout, 4, -1, "tui-windows");
>    uiout->table_header (10, ui_left, "name", "Name");
>    uiout->table_header (5, ui_right, "lines", "Lines");
> +  uiout->table_header (7, ui_right, "columns", "Columns");
>    uiout->table_header (10, ui_left, "focus", "Focus");
>    uiout->table_body ();
>  
> @@ -727,6 +728,7 @@ tui_all_windows_info (const char *arg, int from_tty)
>  
>  	uiout->field_string ("name", win_info->name ());
>  	uiout->field_signed ("lines", win_info->height);
> +	uiout->field_signed ("columns", win_info->width);
>  	if (win_with_focus == win_info)
>  	  uiout->field_string ("focus", _("(has focus)"));
>  	else
> -- 
> 2.25.4
> 


  parent reply	other threads:[~2022-02-06 13:43 UTC|newest]

Thread overview: 74+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-01-28 15:55 [PATCH 0/7] TUI command changes, including new winwidth command Andrew Burgess
2022-01-28 15:55 ` [PATCH 1/7] gdb/tui: add window width information to 'info win' output Andrew Burgess
2022-01-28 17:00   ` Eli Zaretskii
2022-02-06 13:43   ` Andrew Burgess [this message]
2022-01-28 15:55 ` [PATCH 2/7] gdb/doc: update docs for 'info win' and 'winheight' commands Andrew Burgess
2022-01-28 17:03   ` Eli Zaretskii
2022-02-06 13:43     ` Andrew Burgess
2022-01-28 15:55 ` [PATCH 3/7] gdb: move some commands into the tui namespace Andrew Burgess
2022-01-28 17:04   ` Eli Zaretskii
2022-01-28 15:55 ` [PATCH 4/7] gdb/tui: rename tui_layout_base::adjust_size to ::set_height Andrew Burgess
2022-01-28 15:55 ` [PATCH 5/7] gdb/tui: rename tui_layout_split:set_weights_from_heights Andrew Burgess
2022-01-28 15:55 ` [PATCH 6/7] gdb/testing/tui: add new functionality to tuiterm.exp Andrew Burgess
2022-01-28 15:55 ` [PATCH 7/7] gdb/tui: add new 'tui window width' command and 'winwidth' alias Andrew Burgess
2022-01-28 17:05   ` Eli Zaretskii
2022-02-06 14:12 ` [PATCHv2 00/15] TUI changes, new winwidth command and resizing changes Andrew Burgess
2022-02-06 14:12   ` [PATCHv2 01/15] gdb: move some commands into the tui namespace Andrew Burgess
2022-02-06 15:50     ` Eli Zaretskii
2022-02-06 14:12   ` [PATCHv2 02/15] gdb/tui: rename tui_layout_base::adjust_size to ::set_height Andrew Burgess
2022-02-06 14:12   ` [PATCHv2 03/15] gdb/tui: rename tui_layout_split:set_weights_from_heights Andrew Burgess
2022-02-06 14:12   ` [PATCHv2 04/15] gdb/testing/tui: add new functionality to tuiterm.exp Andrew Burgess
2022-03-04 16:29     ` Tom Tromey
2022-02-06 14:12   ` [PATCHv2 05/15] gdb/tui: add new 'tui window width' command and 'winwidth' alias Andrew Burgess
2022-02-06 15:52     ` Eli Zaretskii
2022-02-09 15:33       ` Andrew Burgess
2022-02-09 17:03         ` Eli Zaretskii
2022-03-03 18:52     ` Pedro Alves
2022-02-06 14:12   ` [PATCHv2 06/15] gdb/tui: add a tui debugging flag Andrew Burgess
2022-02-06 15:53     ` Eli Zaretskii
2022-03-04 16:35     ` Tom Tromey
2022-02-06 14:12   ` [PATCHv2 07/15] gdb/tui: add left_boxed_p and right_boxed_p member functions Andrew Burgess
2022-03-04 16:37     ` Tom Tromey
2022-02-06 14:12   ` [PATCHv2 08/15] gdb/tui/testsuite: refactor new-layout.exp test Andrew Burgess
2022-02-06 14:12   ` [PATCHv2 09/15] gdb/tui: avoid fp exception when applying layouts Andrew Burgess
2022-02-06 14:12   ` [PATCHv2 10/15] gdb/tui: fairer distribution of excess space during apply Andrew Burgess
2022-03-04 16:42     ` Tom Tromey
2022-02-06 14:12   ` [PATCHv2 11/15] gdb/tui: allow cmd window to change size in tui_layout_split::apply Andrew Burgess
2022-02-06 14:12   ` [PATCHv2 12/15] gdb/tui: support placing the cmd window into a horizontal layout Andrew Burgess
2022-03-04 17:17     ` Tom Tromey
2022-03-07 20:05       ` Andrew Burgess
2022-03-07 21:24         ` Tom Tromey
2022-02-06 14:12   ` [PATCHv2 13/15] gdb/testsuite: some additional tests in gdb.tui/scroll.exp Andrew Burgess
2022-02-06 14:12   ` [PATCHv2 14/15] gdb/tui: relax restrictions on window max height and width Andrew Burgess
2022-03-04 17:20     ` Tom Tromey
2022-03-07 20:08       ` Andrew Burgess
2022-02-06 14:12   ` [PATCHv2 15/15] gdb/tui: fair split of delta after a resize Andrew Burgess
2022-03-04 17:22     ` Tom Tromey
2022-03-07 22:07       ` Andrew Burgess
2022-03-07 23:42         ` Tom Tromey
2022-02-21 17:29   ` [PATCHv2 00/15] TUI changes, new winwidth command and resizing changes Andrew Burgess
2022-03-02 17:59     ` Andrew Burgess
2022-03-07 22:13   ` [PATCHv3 " Andrew Burgess
2022-03-07 22:13     ` [PATCHv3 01/15] gdb: move some commands into the tui namespace Andrew Burgess
2022-03-07 22:13     ` [PATCHv3 02/15] gdb/tui: rename tui_layout_base::adjust_size to ::set_height Andrew Burgess
2022-03-07 22:13     ` [PATCHv3 03/15] gdb/tui: rename tui_layout_split:set_weights_from_heights Andrew Burgess
2022-03-07 22:13     ` [PATCHv3 04/15] gdb/testing/tui: add new functionality to tuiterm.exp Andrew Burgess
2022-03-07 22:13     ` [PATCHv3 05/15] gdb/tui: add new 'tui window width' command and 'winwidth' alias Andrew Burgess
2022-03-07 22:13     ` [PATCHv3 06/15] gdb/tui: add a tui debugging flag Andrew Burgess
2022-03-08 12:16       ` Eli Zaretskii
2022-03-09 11:48         ` Andrew Burgess
2022-03-09 12:58           ` Eli Zaretskii
2022-03-09 17:53           ` Tom Tromey
2022-03-07 22:13     ` [PATCHv3 07/15] gdb/tui: add left_boxed_p and right_boxed_p member functions Andrew Burgess
2022-03-07 22:13     ` [PATCHv3 08/15] gdb/tui/testsuite: refactor new-layout.exp test Andrew Burgess
2022-03-07 22:13     ` [PATCHv3 09/15] gdb/tui: avoid fp exception when applying layouts Andrew Burgess
2022-03-07 22:13     ` [PATCHv3 10/15] gdb/tui: fairer distribution of excess space during apply Andrew Burgess
2022-03-07 22:13     ` [PATCHv3 11/15] gdb/tui: allow cmd window to change size in tui_layout_split::apply Andrew Burgess
2022-03-07 22:13     ` [PATCHv3 12/15] gdb/tui: support placing the cmd window into a horizontal layout Andrew Burgess
2022-03-07 22:13     ` [PATCHv3 13/15] gdb/testsuite: some additional tests in gdb.tui/scroll.exp Andrew Burgess
2022-03-07 22:13     ` [PATCHv3 14/15] gdb/tui: relax restrictions on window max height and width Andrew Burgess
2022-03-07 22:13     ` [PATCHv3 15/15] gdb/tui: fair split of delta after a resize Andrew Burgess
2022-03-21 17:52     ` [PATCHv3 00/15] TUI changes, new winwidth command and resizing changes Andrew Burgess
2022-03-30  9:13       ` Andrew Burgess
2022-04-03 14:43         ` Andrew Burgess
2022-03-04 17:23 ` [PATCH 0/7] TUI command changes, including new winwidth command Tom Tromey

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20220206134312.GC2706@redhat.com \
    --to=aburgess@redhat.com \
    --cc=gdb-patches@sourceware.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).