From 9a6d629ccf328e3f041c3fcb7e91f49a5d72d0fb Mon Sep 17 00:00:00 2001 From: Andrew Burgess Date: Fri, 10 Jan 2020 00:04:25 +0000 Subject: [PATCH] gdb/tui: Place window titles in the center of the border In tui-wingeneral.c:box_win () a comment suggest we should display titles like this: +-WINDOW TITLE GOES HERE-+ However, we actually display them like this: +--WINDOW TITLE GOES HERE+ The former seems nicer to me, so that's what this commit does. Short titles will appear as: +-SHORT TITLE------------+ We previously didn't test the horizontal windows borders in the test suite, however, I've updated things so that we do now check for the '+-' and '-+' on the upper border, this will give us some protection. gdb/ChangeLog: * tui/tui-wingeneral.c (box_win): Position the title in the center of the border. gdb/testsuite/ChangeLog: * lib/tuiterm.exp (Term::_check_box): Check some parts of the top border. Change-Id: Iead6910e3b4e68bdf6871f861f23d2efd699faf0 --- gdb/ChangeLog | 5 +++++ gdb/testsuite/ChangeLog | 5 +++++ gdb/testsuite/lib/tuiterm.exp | 17 ++++++++++++++--- gdb/tui/tui-wingeneral.c | 4 ++-- 4 files changed, 26 insertions(+), 5 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index f1904051985..f966da85c8a 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,8 @@ +2020-01-13 Andrew Burgess + + * tui/tui-wingeneral.c (box_win): Position the title in the center + of the border. + 2020-01-13 Simon Marchi * corelow.c (core_target::get_core_register_section): Use diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog index e83e2195fa4..10d7cbec074 100644 --- a/gdb/testsuite/ChangeLog +++ b/gdb/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2020-01-13 Andrew Burgess + + * lib/tuiterm.exp (Term::_check_box): Check some parts of the top + border. + 2020-01-10 Tankut Baris Aktemur * gdb.multi/multi-target.exp (setup): Factor out "info diff --git a/gdb/testsuite/lib/tuiterm.exp b/gdb/testsuite/lib/tuiterm.exp index 7adaf1b71ab..da5580324a9 100644 --- a/gdb/testsuite/lib/tuiterm.exp +++ b/gdb/testsuite/lib/tuiterm.exp @@ -569,9 +569,20 @@ namespace eval Term { return "lr corner" } - # Note we do not check the horizonal borders of the box. The - # top will contain a title, and the bottom may as well, if it - # is overlapped by some other border. + # Note we do not check the full horizonal borders of the box. + # The top will contain a title, and the bottom may as well, if + # it is overlapped by some other border. However, at most a + # title should appear as '+-VERY LONG TITLE-+', so we can + # check for the '+-' on the left, and '-+' on the right. + if {[get_char [expr {$x + 1}] $y] != "-"} { + return "ul title padding" + } + + if {[get_char [expr {$x2 - 1}] $y] != "-"} { + return "ul title padding" + } + + # Now check the vertical borders. for {set i [expr {$y + 1}]} {$i < $y2 - 1} {incr i} { if {[get_char $x $i] != "|"} { return "left side $i" diff --git a/gdb/tui/tui-wingeneral.c b/gdb/tui/tui-wingeneral.c index 0a9fc5238d6..4331f636358 100644 --- a/gdb/tui/tui-wingeneral.c +++ b/gdb/tui/tui-wingeneral.c @@ -75,13 +75,13 @@ box_win (struct tui_win_info *win_info, int max_len = win_info->width - 2 - 2; if (win_info->title.size () <= max_len) - mvwaddstr (win, 0, 3, win_info->title.c_str ()); + mvwaddstr (win, 0, 2, win_info->title.c_str ()); else { std::string truncated = "..." + win_info->title.substr (win_info->title.size () - max_len + 3); - mvwaddstr (win, 0, 3, truncated.c_str ()); + mvwaddstr (win, 0, 2, truncated.c_str ()); } } wattroff (win, attrs); -- 2.39.5