[Bug c/87488] hyperlink filenames in diagnostics

dmalcolm at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Thu Oct 10 16:58:00 GMT 2019


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87488

--- Comment #9 from David Malcolm <dmalcolm at gcc dot gnu.org> ---
Author: dmalcolm
Date: Thu Oct 10 16:57:30 2019
New Revision: 276841

URL: https://gcc.gnu.org/viewcvs?rev=276841&root=gcc&view=rev
Log:
pretty-print: support URL escape sequences (PR 87488)

https://gist.github.com/egmontkob/eb114294efbcd5adb1944c9f3cb5feda
describes an emerging standard for embedding URLs in escape sequences
for marking up text output.  This is supported e.g. by recent releases
of GNOME Terminal.

This patch adds support to our pretty-printing framework for emitting
URLs.

A followup patch uses this to add URLs to the pertinent documentation
for the output of -fdiagnostics-show-option.

gcc/ChangeLog:
        PR 87488
        * common.opt (fdiagnostics-urls=): New option.
        (diagnostic-url.h): Add SourceInclude.
        (diagnostic_url_rule): New enum.
        * diagnostic-color.c: Include "diagnostic-url.h".
        (diagnostic_urls_enabled_p): New function.
        * diagnostic-url.h: New file.
        * diagnostic.c: Include "diagnostic-url.h".
        (diagnostic_urls_init): New function.
        * diagnostic.h (diagnostic_urls_init): New decl.
        * doc/invoke.texi (Diagnostic Message Formatting Options): Add
        -fdiagnostics-urls to the list.
        (-fdiagnostics-urls): New option.
        * gcc.c (driver_handle_option): Handle OPT_fdiagnostics_urls_.
        (driver::global_initializations): Call diagnostic_urls_init.
        * opts-global.c (init_options_once): Likewise.
        * opts.c (common_handle_option): Handle OPT_fdiagnostics_urls_.
        * pretty-print.c (pretty_printer::pretty_printer): Initialize
        show_urls.
        (pp_begin_url): New function.
        (pp_end_url): New function.
        (selftest::test_urls): New selftest.
        (selftest::pretty_print_c_tests): Call it.
        * pretty-print.h (pretty_printer::show_urls): New field.
        (pp_begin_url): New decl.
        (pp_end_url): New decl.

gcc/testsuite/ChangeLog:
        PR 87488
        * lib/prune.exp (TEST_ALWAYS_FLAGS): Add -fdiagnostics-urls=never.


Added:
    trunk/gcc/diagnostic-url.h
Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/common.opt
    trunk/gcc/diagnostic-color.c
    trunk/gcc/diagnostic.c
    trunk/gcc/diagnostic.h
    trunk/gcc/doc/invoke.texi
    trunk/gcc/gcc.c
    trunk/gcc/opts-global.c
    trunk/gcc/opts.c
    trunk/gcc/pretty-print.c
    trunk/gcc/pretty-print.h
    trunk/gcc/testsuite/ChangeLog
    trunk/gcc/testsuite/lib/prune.exp


More information about the Gcc-bugs mailing list