diff options
author | Tom Tromey <tom@tromey.com> | 2018-10-09 22:21:05 -0600 |
---|---|---|
committer | Tom Tromey <tom@tromey.com> | 2018-12-28 12:49:54 -0700 |
commit | 62f29fda90cf1d5a1899f57ef78452471c707fd6 (patch) | |
tree | 4d2e519c41de4248f7b4f169f8f379f73f3f0a51 /gdb/tui/tui-data.c | |
parent | 4a3045920bbe4e50a0f4920b0fdc4e88ef23015c (diff) | |
download | gdb-62f29fda90cf1d5a1899f57ef78452471c707fd6.zip gdb-62f29fda90cf1d5a1899f57ef78452471c707fd6.tar.gz gdb-62f29fda90cf1d5a1899f57ef78452471c707fd6.tar.bz2 |
Highlight source code using GNU Source Highlight
This changes gdb to highlight source using GNU Source Highlight, if it
is available.
This affects the output of the "list" command and also the TUI source
window.
No new test because I didn't see a way to make it work when Source
Highlight is not found.
gdb/ChangeLog
2018-12-28 Tom Tromey <tom@tromey.com>
* utils.h (can_emit_style_escape): Declare.
* utils.c (can_emit_style_escape): No longer static.
* cli/cli-style.c (set_style_enabled): New function.
(_initialize_cli_style): Use it.
* tui/tui-winsource.c (tui_show_source_line): Use tui_puts.
(tui_alloc_source_buffer): Change how source lines are allocated.
* tui/tui-source.c (copy_source_line): New function.
(tui_set_source_content): Use source cache.
* tui/tui-io.h (tui_puts): Update.
* tui/tui-io.c (tui_puts_internal): Add window parameter.
(tui_puts): Likewise.
(tui_redisplay_readline): Update.
* tui/tui-data.c (free_content_elements): Change how source window
contents are freed.
* source.c (forget_cached_source_info): Clear the source cache.
(print_source_lines_base): Use the source cache.
* source-cache.h: New file.
* source-cache.c: New file.
* configure.ac: Check for GNU Source Highlight library.
* configure: Update.
* config.in: Update.
* Makefile.in (SRCHIGH_LIBS, SRCHIGH_CFLAGS): New variables.
(INTERNAL_CFLAGS_BASE): Add SRCHIGH_CFLAGS.
(CLIBS): Add SRCHIGH_LIBS.
(COMMON_SFILES): Add source-cache.c.
(HFILES_NO_SRCDIR): Add source-cache.h.
Diffstat (limited to 'gdb/tui/tui-data.c')
-rw-r--r-- | gdb/tui/tui-data.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/gdb/tui/tui-data.c b/gdb/tui/tui-data.c index 4391f0d..2b95f19 100644 --- a/gdb/tui/tui-data.c +++ b/gdb/tui/tui-data.c @@ -838,7 +838,7 @@ free_content_elements (tui_win_content content, { int i; - if (type == SRC_WIN || type == DISASSEM_WIN) + if (type == DISASSEM_WIN) { /* Free whole source block. */ xfree (content[0]->which_element.source.line); @@ -854,6 +854,9 @@ free_content_elements (tui_win_content content, { switch (type) { + case SRC_WIN: + xfree (element->which_element.source.line); + break; case DATA_WIN: xfree (element); break; |