diff options
-rw-r--r-- | gdb/NEWS | 4 | ||||
-rw-r--r-- | gdb/testsuite/gdb.tui/info-win.exp | 61 | ||||
-rw-r--r-- | gdb/tui/tui-win.c | 4 |
3 files changed, 68 insertions, 1 deletions
@@ -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 0000000..2607d5b --- /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 c85dfd4..fd6ca59a 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 |