diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog index f17638736a4..a0b5862dd8b 100644 --- a/gdb/testsuite/ChangeLog +++ b/gdb/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2019-07-29 Tom Tromey + + * lib/tuiterm.exp (Term::_csi_@): New proc. + (Term::_csi_X): Don't move cursor. + 2019-07-29 Philippe Waroquiers * gdb.base/options.exp: Update backtrace - completion to diff --git a/gdb/testsuite/lib/tuiterm.exp b/gdb/testsuite/lib/tuiterm.exp index c58b7cfda21..d94fd431d8a 100644 --- a/gdb/testsuite/lib/tuiterm.exp +++ b/gdb/testsuite/lib/tuiterm.exp @@ -104,6 +104,21 @@ namespace eval Term { set _cur_x 0 } + # Make room for characters. + proc _csi_@ {args} { + set n [_default [lindex $args 0] 1] + variable _cur_x + variable _cur_y + variable _chars + set in_x $_cur_x + set out_x [expr {$_cur_x + $n}] + for {set i 0} {$i < $n} {incr i} { + set _chars($out_x,$_cur_y) $_chars($in_x,$_cur_y) + incr in_x + incr out_x + } + } + # Cursor Up. proc _csi_A {args} { variable _cur_y @@ -238,7 +253,17 @@ namespace eval Term { # Erase chars. proc _csi_X {args} { set n [_default [lindex $args 0] 1] - _insert [string repeat " " $n] + # Erase characters but don't move cursor. + variable _cur_x + variable _cur_y + variable _attrs + variable _chars + set lattr [array get _attrs] + set x $_cur_x + for {set i 0} {$i < $n} {incr i} { + set _chars($x,$_cur_y) [list " " $lattr] + incr x + } } # Repeat.