Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
From: Tom de Vries <tdevries@suse.de>
To: gdb-patches@sourceware.org
Subject: [PATCH 7/7] [gdb/testsuite] Add Term::get_string_with_attrs in tuiterm
Date: Fri, 18 Jul 2025 15:01:53 +0200	[thread overview]
Message-ID: <20250718130153.24989-8-tdevries@suse.de> (raw)
In-Reply-To: <20250718130153.24989-1-tdevries@suse.de>

While reading a gdb.log for test-case gdb.tui/main-2.exp, I noticed that this
line was somewhat hard to read:
...
screen line 6: '<fg:cyan><intensity:bold>|<fg:default><intensity:normal>B+>    21 <reverse:1>  return 0;<reverse:0>                                                         <fg:cyan><intensity:bold>|<fg:default><intensity:normal>'
...
because of the border attributes.

Then I realized that the test-case is only interested in the text between the
borders, so I added a proc Term::get_string_with_attrs that allows me to drop
the borders, getting us instead:
...
screen line 6: 'B+>    21 <reverse:1>  return 0;<reverse:0>                                                         '
...

Tested on aarch64-linux.
---
 gdb/testsuite/gdb.tui/main-2.exp |  2 +-
 gdb/testsuite/lib/tuiterm.exp    | 23 ++++++++++++++++++-----
 2 files changed, 19 insertions(+), 6 deletions(-)

diff --git a/gdb/testsuite/gdb.tui/main-2.exp b/gdb/testsuite/gdb.tui/main-2.exp
index 2b0fb6bd003..71ad03b73fc 100644
--- a/gdb/testsuite/gdb.tui/main-2.exp
+++ b/gdb/testsuite/gdb.tui/main-2.exp
@@ -41,7 +41,7 @@ if {![Term::enter_tui]} {
 set line "  return 0;"
 set nr [gdb_get_line_number $line]
 
-set screen_line [Term::get_line_with_attrs 6]
+set screen_line [Term::get_string_with_attrs 6 1 79]
 verbose -log "screen line 6: '$screen_line'"
 gdb_assert { [regexp "$nr <reverse:1>$line<reverse:0>" $screen_line] } \
     "highlighted line in middle of source window"
diff --git a/gdb/testsuite/lib/tuiterm.exp b/gdb/testsuite/lib/tuiterm.exp
index 76351841988..d62cc0751a5 100644
--- a/gdb/testsuite/lib/tuiterm.exp
+++ b/gdb/testsuite/lib/tuiterm.exp
@@ -1012,10 +1012,10 @@ namespace eval Term {
 	return $res
     }
 
-    # Return the text of screen line N.  Lines are 0-based.  If C is given,
-    # stop before column C.  Columns are also zero-based.  If ATTRS, annotate
-    # with attributes.
-    proc get_line_1 {n c attrs} {
+    # Return the text of screen line N.  Lines are 0-based.  Start at column
+    # X.  If C is given, stop before column C.  Columns are also zero-based.
+    # If ATTRS, annotate with attributes.
+    proc get_string {n x c {attrs 0}} {
 	variable _rows
 	# This can happen during resizing, if the cursor seems to
 	# temporarily be off-screen.
@@ -1027,7 +1027,6 @@ namespace eval Term {
 	variable _cols
 	variable _chars
 	set c [_default $c $_cols]
-	set x 0
 	if { $attrs } {
 	    _reset_attrs line_attrs
 	}
@@ -1047,6 +1046,20 @@ namespace eval Term {
 	return $result
     }
 
+    # Return the text of screen line N.  Lines are 0-based.  Start at column
+    # X.  If C is given, stop before column C.  Columns are also zero-based.
+    # Annotate with attributes.
+    proc get_string_with_attrs { n x c } {
+	return [get_string $n $x $c 1]
+    }
+
+    # Return the text of screen line N.  Lines are 0-based.  If C is given,
+    # stop before column C.  Columns are also zero-based.  If ATTRS, annotate
+    # with attributes.
+    proc get_line_1 {n c attrs} {
+	return [get_string $n 0 $c $attrs]
+    }
+
     # Return the text of screen line N, without attributes.  Lines are
     # 0-based.  If C is given, stop before column C.  Columns are also
     # zero-based.
-- 
2.43.0


  parent reply	other threads:[~2025-07-18 13:04 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-07-18 13:01 [PATCH 0/7] [gdb/testsuite] Fix TUI tests for freebsd Tom de Vries
2025-07-18 13:01 ` [PATCH 1/7] [gdb/testsuite] Fix Cursor Horizontal Absolute clipping Tom de Vries
2025-07-18 13:01 ` [PATCH 2/7] [gdb/testsuite] Handle Horizontal Position Absolute in tuiterm Tom de Vries
2025-07-18 13:01 ` [PATCH 3/7] [gdb/testsuite] Log on return in Term::_log_cur Tom de Vries
2025-07-23 18:28   ` Tom Tromey
2025-07-24  7:18     ` Tom de Vries
2025-07-18 13:01 ` [PATCH 4/7] [gdb/testsuite] Handle auto_left_margin in tuiterm Tom de Vries
2025-07-23 18:36   ` Tom Tromey
2025-07-18 13:01 ` [PATCH 5/7] [gdb/testsuite] Fix Term::_csi_m with no args Tom de Vries
2025-07-23 18:30   ` Tom Tromey
2025-07-23 20:34     ` Tom de Vries
2025-07-24  1:17       ` Tom Tromey
2025-07-18 13:01 ` [PATCH 6/7] [gdb/testsuite] Use TERM=ansiw in tuiterm for bsd Tom de Vries
2025-07-23 18:34   ` Tom Tromey
2025-07-24  9:47     ` Tom de Vries
2025-07-18 13:01 ` Tom de Vries [this message]
2025-07-23 18:36   ` [PATCH 7/7] [gdb/testsuite] Add Term::get_string_with_attrs in tuiterm Tom Tromey
2025-07-24 10:07     ` Tom de Vries

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=20250718130153.24989-8-tdevries@suse.de \
    --to=tdevries@suse.de \
    --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