binutils-gdb/gdb/tui
Tom de Vries b35013e29f [gdb/tui] Fix centering and highlighting of current line
After starting TUI like this with a hello world a.out:
...
$ gdb -q a.out -ex start -ex "tui enable"
...
we get:
...
┌─hello.c──────────────────────────────┐
│        5 {                           │
│        6   printf ("hello\n");       │
│        7                             │
│        8   return 0;                 │
│        9 }                           │
│                                      │
└──────────────────────────────────────┘
...

This is a regression since commit ee1e9bbb51 ("[gdb/tui] Fix displaying main
after resizing"), before which we had instead:
...
┌─hello.c──────────────────────────────┐
│        4 main (void)                 │
│        5 {                           │
│  >     6   printf ("hello\n");       │
│        7                             │
│        8   return 0;                 │
│        9 }                           │
└──────────────────────────────────────┘
...

In other words, the problems are:
- the active line (source line 6) is no longer highlighted, and
- the active line is not vertically centered (screen line 2 out 6 instead of
  screen line 3 out of 6).

Fix these problems respectively by:
- in tui_enable, instead of "tui_show_frame_info (0)" using
  'tui_show_frame_info (deprecated_safe_get_selected_frame ())", and
- in tui_source_window_base::rerender, adding centering functionality.

Tested on aarch64-linux.

Co-Authored-By: Tom Tromey <tom@tromey.com>
Approved-By: Tom Tromey <tom@tromey.com>

PR tui/31522
Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=31522
2024-04-02 16:09:10 +02:00
..
ChangeLog-1998-2003
tui-command.c
tui-command.h
tui-data.c
tui-data.h
tui-disasm.c
tui-disasm.h
tui-file.c
tui-file.h
tui-hooks.c
tui-hooks.h
tui-interp.c
tui-io.c
tui-io.h
tui-layout.c
tui-layout.h
tui-location.c
tui-location.h
tui-regs.c
tui-regs.h
tui-source.c
tui-source.h
tui-status.c
tui-status.h
tui-win.c
tui-win.h
tui-wingeneral.c
tui-wingeneral.h
tui-winsource.c
tui-winsource.h
tui.c
tui.h