Style disassembly in the TUI
authorTom Tromey <tom@tromey.com>
Mon, 21 Oct 2019 17:21:14 +0000 (11:21 -0600)
committerTom Tromey <tom@tromey.com>
Tue, 5 Nov 2019 22:23:36 +0000 (15:23 -0700)
commit1df2f9ef6cae23a08a50a3b2f33ce2664ce9ae9e
treea7b1c72b7e81c9e4179ea641fc5eb17fefe8e4bf
parent5d0510553eb447bf6861f4641b5ae3aaf9503a13
Style disassembly in the TUI

This patch changes the TUI disassembly window to style its contents.
The styling should be identical to what is seen in the CLI.  This
involved a bit of rearrangement, so that the source and disassembly
windows could share both the copy_source_line utility function, and
the ability to react to changes in "set style enabled".

This version introduces a new function to strip the styling from the
address string when computing the length.  As a byproduct, it also
removes the unused "insn_size" computation from
tui_disasm_window::set_contents.

gdb/ChangeLog
2019-11-05  Tom Tromey  <tom@tromey.com>

* tui/tui-source.h (struct tui_source_window): Inline
constructor.  Remove destructor.
<style_changed, m_observable>: Move to superclass.
* tui/tui-winsource.h (tui_copy_source_line): Declare.
(struct tui_source_window_base): Move private members to end.
<style_changed, m_observable>: Move from tui_source_window.
* tui/tui-winsource.c (tui_copy_source_line): Move from
tui-source.c.  Rename from copy_source_line.  Add special handling
for negative line number.
(tui_source_window_base::style_changed): Move from
tui_source_window.
(tui_source_window_base): Register observer.
(~tui_source_window_base): New.
* tui/tui-source.c (copy_source_line): Move to tui-winsource.c;
rename.
(tui_source_window::set_contents): Use tui_copy_source_line.
(tui_source_window::tui_source_window): Move to tui-source.h.
(tui_source_window::~tui_source_window): Remove.
(tui_source_window::style_changed): Move to superclass.
* tui/tui-disasm.c (tui_disassemble): Create string file with
styling, when possible.  Add "addr_size" parameter.
(tui_disasm_window::set_contents): Use tui_copy_source_line.
Don't compute maximum size.
(len_without_escapes): New function

Change-Id: I8722635eeecbbb1633d943a65b856404c2d467b0
gdb/ChangeLog
gdb/tui/tui-disasm.c
gdb/tui/tui-source.c
gdb/tui/tui-source.h
gdb/tui/tui-winsource.c
gdb/tui/tui-winsource.h