diff options
author | Tom Tromey <tom@tromey.com> | 2022-03-09 17:26:37 -0700 |
---|---|---|
committer | Tom Tromey <tom@tromey.com> | 2022-03-31 18:01:38 -0600 |
commit | 8839e3f3b0d1af5d93ba1d4f667ce33936bb7db2 (patch) | |
tree | 3415fb5146ff047711b8fad2c594443a7c52bcb6 | |
parent | d7abb2c4bd748e5fc54f3e2585fe295fb60300f0 (diff) | |
download | gdb-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.c | 25 | ||||
-rw-r--r-- | gdb/doc/gdb.texinfo | 2 | ||||
-rw-r--r-- | gdb/main.c | 4 | ||||
-rw-r--r-- | gdb/testsuite/gdb.base/style.exp | 5 | ||||
-rw-r--r-- | gdb/top.c | 14 | ||||
-rw-r--r-- | gdb/utils.c | 5 |
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 @@ -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" } } @@ -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) |