+2021-01-22 Andrew Burgess <andrew.burgess@embecosm.com>
+
+ PR cli/25956
+ * NEWS: Mention new command.
+ * 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.
+
2021-01-22 Andrew Burgess <andrew.burgess@embecosm.com>
* utils.c (emit_style_escape): Only emit an escape sequence if the
'maintenance flush register-cache' and 'maintenance flush
symbol-cache' respectively.
+set style version foreground COLOR
+set style version background COLOR
+set style version intensity VALUE
+ Control the styling of GDB's version number text.
+
*** Changes in GDB 10
* There are new feature names for ARC targets: "org.gnu.gdb.arc.core"
#include "defs.h"
#include "cli/cli-cmds.h"
+#include "cli/cli-setshow.h"
#include "cli/cli-style.h"
#include "source-cache.h"
#include "observable.h"
/* See cli-style.h. */
+cli_style_option version_style ("version", ui_file_style::MAGENTA,
+ ui_file_style::BOLD);
+
+/* See cli-style.h. */
+
cli_style_option::cli_style_option (const char *name,
- ui_file_style::basic_color fg)
+ ui_file_style::basic_color fg,
+ ui_file_style::intensity intensity)
: changed (name),
m_name (name),
m_foreground (cli_colors[fg - ui_file_style::NONE]),
m_background (cli_colors[0]),
- m_intensity (cli_intensities[ui_file_style::NORMAL])
+ m_intensity (cli_intensities[intensity])
{
}
&style_set_list,
&style_show_list,
true);
+
+ version_style.add_setshow_commands (no_class, _("\
+Version string display styling.\n\
+Configure colors used to display the GDB version string."),
+ &style_set_list, &style_show_list,
+ false);
}
public:
/* Construct a CLI style option with a foreground color. */
- cli_style_option (const char *name, ui_file_style::basic_color fg);
+ cli_style_option (const char *name, ui_file_style::basic_color fg,
+ ui_file_style::intensity = ui_file_style::NORMAL);
/* Construct a CLI style option with an intensity. */
cli_style_option (const char *name, ui_file_style::intensity i);
/* The border style of a TUI window that does have the focus. */
extern cli_style_option tui_active_border_style;
+/* The style to use for the GDB version string. */
+extern cli_style_option version_style;
+
/* True if source styling is enabled. */
extern bool source_styling;
+2021-01-22 Andrew Burgess <andrew.burgess@embecosm.com>
+
+ PR cli/25956
+ * gdb.texinfo (Output Styling): Document version style.
+
2021-01-22 Andrew Burgess <andrew.burgess@embecosm.com>
* gdb.texinfo (Auto-loading extensions): Add additional cross
@code{set style address} family of commands. By default, this style's
foreground color is blue.
+@item version
+Control the styling of @value{GDBN}'s version number text. By
+default, this style's foreground color is magenta and it has bold
+intensity. The version number is displayed in two places, the output
+of @command{show version}, and when @value{GDBN} starts up.
+
+Currently the version string displayed at startup is printed before
+@value{GDBN} has parsed any command line options, or parsed any
+command files, so there is currently no way to control the styling of
+this string. However, @value{GDBN}'s @code{--quiet} command line option
+can be used to disable printing of the version string on startup.
+
@item title
Control the styling of titles. These are managed with the
@code{set style title} family of commands. By default, this style's
+2021-01-22 Andrew Burgess <andrew.burgess@embecosm.com>
+
+ 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.
+
2021-01-22 Andrew Burgess <andrew.burgess@embecosm.com>
* gdb.base/style.exp (limited_style): New proc.
gdb_test "p 5" \
"Warning: '[limited_style p title]', an alias for the command '[limited_style print title]', is deprecated.*Use '[limited_style new_p title]'.*" \
"p deprecated warning, with replacement"
+
+ # Check that the version string is styled in the output of 'show
+ # version', and that this styling can be disabled.
+ set vers [style "GNU gdb.*" version]
+ gdb_test "show version" "${vers}.*" \
+ "version is styled in 'show version'"
}
}
# Deliberate use of base STYLE proc here as the style of the
# startup version string can't (currently) be controlled.
- set vers [style "GNU gdb.*" "35;1"]
+ set vers [style "GNU gdb.*" version]
gdb_test "" "${vers}.*" "version is styled at startup"
}
variable { set style 36 }
address { set style 34 }
metadata { set style 2 }
+ version { set style "35;1" }
}
return "\033\\\[${style}m${str}\033\\\[m"
}
program to parse, and is just canonical program name and version
number, which starts after last space. */
- ui_file_style style;
- if (interactive)
- {
- ui_file_style nstyle = { ui_file_style::MAGENTA, ui_file_style::NONE,
- ui_file_style::BOLD };
- style = nstyle;
- }
- fprintf_styled (stream, style, "GNU gdb %s%s\n", PKGVERSION, version);
+ std::string v_str = string_printf ("GNU gdb %s%s", PKGVERSION, version);
+ fprintf_filtered (stream, "%ps\n",
+ styled_string (version_style.style (), v_str.c_str ()));
/* Second line is a copyright notice. */