gdb: add new version style
authorAndrew Burgess <andrew.burgess@embecosm.com>
Wed, 13 Jan 2021 20:08:51 +0000 (20:08 +0000)
committerAndrew Burgess <andrew.burgess@embecosm.com>
Fri, 22 Jan 2021 19:09:31 +0000 (19:09 +0000)
commit9d2d8a16e1ce033d6b7956d4b4f37961705bb5cf
tree8125bc0637b54354f56ba62a74e3dc46bb3b8149
parente7b430724d89288f06926999811c71400e0d1531
gdb: add new version style

This commit adds a new 'version' style, which replaces the hard coded
styling currently used for GDB's version string.  GDB's version number
is displayed:

  1. In the output of 'show version', and

  2. When GDB starts up (without the --quiet option).

This new style can only ever affect the first of these two cases as
the second case is printed before GDB has processed any initialization
files, or processed any GDB commands passed on the command line.

However, because the first case exists I think this commit makes
sense, it means the style is no longer hard coded into GDB, and we can
add some tests that the style can be enabled/disabled correctly.

This commit is an alternative to a patch Tom posted here:

  https://sourceware.org/pipermail/gdb-patches/2020-June/169820.html

I've used the style name 'version' instead of 'startup' to reflect
what the style is actually used for.  If other parts of the startup
text end up being highlighted I imagine they would get their own
styles based on what is being highlighted.  I feel this is more inline
with the other style names that are already in use within GDB.

I also decoupled adding this style from the idea of startup options,
and the possibility of auto-saving startup options.  Those ideas can
be explored in later patches.

This commit should probably be considered only a partial solution to
issue PR cli/25956.  The colours of the style are no longer hard
coded, however, it is still impossible to change the styling of the
version string displayed during startup, so in one sense, the styling
of that string is still "hard coded".  A later patch will hopefully
extend GDB to allow it to adjust the version styling before the
initial version string is printed.

gdb/ChangeLog:

PR cli/25956
* cli/cli-style.c: Add 'cli/cli-setshow.h' include.
(version_style): Define.
(cli_style_option::cli_style_option): Add intensity parameter, and
use as appropriate.
(_initialize_cli_style): Register version style set/show commands.
* cli/cli-style.h (cli_style_option): Add intensity parameter.
(version_style): Declare.
* top.c (print_gdb_version): Use version_stype, and styled_string
to print the GDB version string.

gdb/doc/ChangeLog:

PR cli/25956
* gdb.texinfo (Output Styling): Document version style.

gdb/testsuite/ChangeLog:

PR cli/25956
* gdb.base/style.exp (run_style_tests): Add version string test.
(test_startup_version_string): Use version style name.
* lib/gdb-utils.exp (style): Handle version style name.
gdb/ChangeLog
gdb/NEWS
gdb/cli/cli-style.c
gdb/cli/cli-style.h
gdb/doc/ChangeLog
gdb/doc/gdb.texinfo
gdb/testsuite/ChangeLog
gdb/testsuite/gdb.base/style.exp
gdb/testsuite/lib/gdb-utils.exp
gdb/top.c