From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by sourceware.org (Postfix) with ESMTPS id 1A2863858D1E for ; Sun, 6 Feb 2022 13:43:23 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 1A2863858D1E Received: from mail-wm1-f72.google.com (mail-wm1-f72.google.com [209.85.128.72]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-528-0ytlgSp3OBypPQ47rtZL9g-1; Sun, 06 Feb 2022 08:43:15 -0500 X-MC-Unique: 0ytlgSp3OBypPQ47rtZL9g-1 Received: by mail-wm1-f72.google.com with SMTP id l16-20020a7bcf10000000b0034ffdd81e7aso4221671wmg.4 for ; Sun, 06 Feb 2022 05:43:15 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:date:from:to:subject:message-id:references :mime-version:content-disposition:in-reply-to; bh=Aj51m9xbTlwjO9hoJHgYX79apaKZXorT1P5wiYDZJzw=; b=Zv5u6CIH4XvVS67sopA1wMZxcio+zqcZZSbTFy1BrTkrZRcRSZNZ7i0re0/hfKBQSD 9Lb4i052y7xqw5bnuaxMGl09GpehQBx2OElxy5NmfrhaIlvc+4DPmnM+/0nnVbaxHdGg PzKJYVcbuSjVzDDaieI/LP74TRLD6QAb9pJzscXYB9P4vJOZA5Y6UiKr7iRhfkgmsASO 2AOIWtyHUll9lKrhDphwvalWM3vsBhKPvqGtM3zuW0NOUgYJcsuE8naX3g3KdgXO+meI EmkdHv8UOzQ8H9y4LBaIULpqvvne0aLFYItk5aFYeQLkdctq3804iN/8IMomMgVJml/h jqmA== X-Gm-Message-State: AOAM531BEbrdE3R4TVOxDnyYs24GaZm4v87yZ49hWqPfZTFzYKnE8nUK Q1/L77cM+XGIvM900DshbgCSXXuGxeNMUJcmhXqqKcgncsv2tbOMw8ORy/v4CQ4/a/BtJgwIJMH ntfmR9gwJtSKsA6hQLyKYHtDkSpo5VqktAZLjE/JxA36yHXSYVKHMi6Q4d0f5vB2/VxeSQoPumQ == X-Received: by 2002:adf:a2da:: with SMTP id t26mr544791wra.290.1644154994015; Sun, 06 Feb 2022 05:43:14 -0800 (PST) X-Google-Smtp-Source: ABdhPJwoAvSwaPN+6j4B4nzLZlwIhEJdOZ5gKzLbfb+j4tac8IfU+lCLMW60z0p58nuZjOWlCcAKFQ== X-Received: by 2002:adf:a2da:: with SMTP id t26mr544778wra.290.1644154993701; Sun, 06 Feb 2022 05:43:13 -0800 (PST) Received: from localhost (92.40.178.36.threembb.co.uk. [92.40.178.36]) by smtp.gmail.com with ESMTPSA id n5sm6719290wmq.43.2022.02.06.05.43.12 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 06 Feb 2022 05:43:13 -0800 (PST) Date: Sun, 6 Feb 2022 13:43:12 +0000 From: Andrew Burgess To: gdb-patches@sourceware.org Subject: Re: [PATCH 1/7] gdb/tui: add window width information to 'info win' output Message-ID: <20220206134312.GC2706@redhat.com> References: <8a07632c8949a934306406f22a5c659018cd1d39.1643385021.git.aburgess@redhat.com> MIME-Version: 1.0 In-Reply-To: <8a07632c8949a934306406f22a5c659018cd1d39.1643385021.git.aburgess@redhat.com> X-Operating-System: Linux/5.8.18-100.fc31.x86_64 (x86_64) X-Uptime: 13:42:16 up 1 day, 2:39, X-Editor: GNU Emacs [ http://www.gnu.org/software/emacs ] X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset=us-ascii Content-Disposition: inline X-Spam-Status: No, score=-10.5 required=5.0 tests=BAYES_00, DKIMWL_WL_HIGH, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, KAM_SHORT, RCVD_IN_BARRACUDACENTRAL, RCVD_IN_DNSWL_LOW, SPF_HELO_NONE, SPF_NONE, TXREP, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on server2.sourceware.org X-BeenThere: gdb-patches@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gdb-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 06 Feb 2022 13:43:25 -0000 * Andrew Burgess [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 . > + > +# 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 >