[gdb/testsuite] Fix linefeed scrolling in tuiterm
authorTom de Vries <tdevries@suse.de>
Mon, 29 May 2023 20:11:05 +0000 (22:11 +0200)
committerTom de Vries <tdevries@suse.de>
Mon, 29 May 2023 20:11:05 +0000 (22:11 +0200)
commite20baea1298d2227db953862d131d9bbf91cf522
tree0f35bcd45efa1af79f81b996c2e37641aee22033
parentf818c32ba4596a60e77b464cb690aea65ed31346
[gdb/testsuite] Fix linefeed scrolling in tuiterm

I came across a bug in the implementation of line feed in tuiterm, and added a
unit test that exposes it.

Before sending the line feed we have:
...
Screen Dump (size 8 columns x 4 rows, cursor at column 0, row 3):
    0 abcdefgh
    1 ijklmnop
    2 qrstuvwx
    3 yz01234
...
and after it we have:
...
Screen Dump (size 8 columns x 4 rows, cursor at column 0, row 1):
    0 ijklmnop
    1 qrstuvwx
    2 yz01234
    3 yz01234
...

Note how the cursor started at row 3 and after the line feed ended up at
row 1, while it should have stayed in row 3.

Fix this by moving "incr _cur_row -1" one level up in the loop nest in
proc _ctl_0x0a.

Tested on x86_64-linux.
gdb/testsuite/gdb.tui/tuiterm.exp
gdb/testsuite/lib/tuiterm.exp