aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Tromey <tom@tromey.com>2022-03-09 17:26:37 -0700
committerTom Tromey <tom@tromey.com>2022-03-31 18:01:38 -0600
commit8839e3f3b0d1af5d93ba1d4f667ce33936bb7db2 (patch)
tree3415fb5146ff047711b8fad2c594443a7c52bcb6
parentd7abb2c4bd748e5fc54f3e2585fe295fb60300f0 (diff)
downloadgdb-8839e3f3b0d1af5d93ba1d4f667ce33936bb7db2.zip
gdb-8839e3f3b0d1af5d93ba1d4f667ce33936bb7db2.tar.gz
gdb-8839e3f3b0d1af5d93ba1d4f667ce33936bb7db2.tar.bz2
Style URLs in GDB output
I noticed that GDB will display URLs in a few spots. This changes them to be styled. Originally I thought I'd introduce a new "url" style, but there aren't many places to use this, so I just reused filename styling instead. This patch also changes the debuginfod URL list to be printed one URL per line. I think this is probably a bit easier to read.
-rw-r--r--gdb/debuginfod-support.c25
-rw-r--r--gdb/doc/gdb.texinfo2
-rw-r--r--gdb/main.c4
-rw-r--r--gdb/testsuite/gdb.base/style.exp5
-rw-r--r--gdb/top.c14
-rw-r--r--gdb/utils.c5
6 files changed, 40 insertions, 15 deletions
diff --git a/gdb/debuginfod-support.c b/gdb/debuginfod-support.c
index b3a49bf..22944ce 100644
--- a/gdb/debuginfod-support.c
+++ b/gdb/debuginfod-support.c
@@ -181,10 +181,27 @@ debuginfod_is_enabled ()
if (debuginfod_enabled == debuginfod_ask)
{
- int resp = nquery (_("\nThis GDB supports auto-downloading debuginfo " \
- "from the following URLs:\n%s\nEnable debuginfod " \
- "for this session? "),
- urls);
+ gdb_printf (_("\nThis GDB supports auto-downloading debuginfo " \
+ "from the following URLs:\n"));
+
+ gdb::string_view url_view (urls);
+ while (true)
+ {
+ url_view = url_view.substr (url_view.find_first_not_of (' '));
+ if (url_view.empty ())
+ break;
+ size_t off = url_view.find_first_of (' ');
+ gdb_printf
+ (_(" <%ps>\n"),
+ styled_string (file_name_style.style (),
+ gdb::to_string (url_view.substr (0,
+ off)).c_str ()));
+ if (off == gdb::string_view::npos)
+ break;
+ url_view = url_view.substr (off);
+ }
+
+ int resp = nquery (_("Enable debuginfod for this session? "));
if (!resp)
{
gdb_printf (_("Debuginfod has been disabled.\nTo make this " \
diff --git a/gdb/doc/gdb.texinfo b/gdb/doc/gdb.texinfo
index a4afa75..d21fd0d 100644
--- a/gdb/doc/gdb.texinfo
+++ b/gdb/doc/gdb.texinfo
@@ -26238,7 +26238,7 @@ their characteristics and the visual aspect of each style.
The style-able objects are:
@table @code
@item filename
-Control the styling of file names. By default, this style's
+Control the styling of file names and URLs. By default, this style's
foreground color is green.
@item function
diff --git a/gdb/main.c b/gdb/main.c
index f53131d..8c0807f 100644
--- a/gdb/main.c
+++ b/gdb/main.c
@@ -1495,8 +1495,8 @@ GDB manual (available as on-line info or a printed manual).\n\
"), stream);
if (REPORT_BUGS_TO[0] && stream == gdb_stdout)
gdb_printf (stream, _("\n\
-Report bugs to %s.\n\
-"), REPORT_BUGS_TO);
+Report bugs to %ps.\n\
+"), styled_string (file_name_style.style (), REPORT_BUGS_TO));
if (stream == gdb_stdout)
gdb_printf (stream, _("\n\
You can ask GDB-related questions on the GDB users mailing list\n\
diff --git a/gdb/testsuite/gdb.base/style.exp b/gdb/testsuite/gdb.base/style.exp
index 68196d6..611b8ae 100644
--- a/gdb/testsuite/gdb.base/style.exp
+++ b/gdb/testsuite/gdb.base/style.exp
@@ -309,8 +309,9 @@ proc run_style_tests { } {
# 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'"
+ set url [limited_style "http:.*html" file]
+ gdb_test "show version" "${vers}.*<$url>.*" \
+ "'show version' is styled"
}
}
diff --git a/gdb/top.c b/gdb/top.c
index ecd3145..c7ff674 100644
--- a/gdb/top.c
+++ b/gdb/top.c
@@ -1428,9 +1428,11 @@ print_gdb_version (struct ui_file *stream, bool interactive)
there is no warranty. */
gdb_printf (stream, "\
-License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>\
+License GPLv3+: GNU GPL version 3 or later <%ps>\
\nThis is free software: you are free to change and redistribute it.\n\
-There is NO WARRANTY, to the extent permitted by law.");
+There is NO WARRANTY, to the extent permitted by law.",
+ styled_string (file_name_style.style (),
+ "http://gnu.org/licenses/gpl.html"));
if (!interactive)
return;
@@ -1459,11 +1461,15 @@ There is NO WARRANTY, to the extent permitted by law.");
{
gdb_printf (stream,
_("For bug reporting instructions, please see:\n"));
- gdb_printf (stream, "%s.\n", REPORT_BUGS_TO);
+ gdb_printf (stream, "%ps.\n",
+ styled_string (file_name_style.style (),
+ REPORT_BUGS_TO));
}
gdb_printf (stream,
_("Find the GDB manual and other documentation \
-resources online at:\n <http://www.gnu.org/software/gdb/documentation/>."));
+resources online at:\n <%ps>."),
+ styled_string (file_name_style.style (),
+ "http://www.gnu.org/software/gdb/documentation/"));
gdb_printf (stream, "\n\n");
gdb_printf (stream, _("For help, type \"help\".\n"));
gdb_printf (stream,
diff --git a/gdb/utils.c b/gdb/utils.c
index 9ca268a..68bf3a6 100644
--- a/gdb/utils.c
+++ b/gdb/utils.c
@@ -404,8 +404,9 @@ internal_vproblem (struct internal_problem *problem,
gdb_puts (_("\nThis is a bug, please report it."), gdb_stderr);
if (REPORT_BUGS_TO[0])
- gdb_printf (gdb_stderr, _(" For instructions, see:\n%s."),
- REPORT_BUGS_TO);
+ gdb_printf (gdb_stderr, _(" For instructions, see:\n%ps."),
+ styled_string (file_name_style.style (),
+ REPORT_BUGS_TO));
gdb_puts ("\n\n", gdb_stderr);
if (problem->should_dump_core == internal_problem_ask)