re PR c/87488 (hyperlink filenames in diagnostics)
authorTobias Burnus <tobias@codesourcery.com>
Sat, 7 Dec 2019 08:24:14 +0000 (08:24 +0000)
committerJakub Jelinek <jakub@gcc.gnu.org>
Sat, 7 Dec 2019 08:24:14 +0000 (09:24 +0100)
PR c/87488
* pretty-print.c (pp_begin_url, pp_end_url, test_urls): Use BEL
instead of ST sequence to terminate OSC 8 strings.

Co-Authored-By: David Malcolm <dmalcolm@redhat.com>
Co-Authored-By: Jakub Jelinek <jakub@redhat.com>
From-SVN: r279073

gcc/ChangeLog
gcc/pretty-print.c

index 09cba3d576a4dfd9549315d247261903f1effcec..0eda8e01d209360614153fc1f0fcb9f2ad7a53f7 100644 (file)
@@ -1,3 +1,11 @@
+2019-12-07  Tobias Burnus  <tobias@codesourcery.com>
+           David Malcolm  <dmalcolm@redhat.com>
+           Jakub Jelinek  <jakub@redhat.com>
+
+       PR c/87488
+       * pretty-print.c (pp_begin_url, pp_end_url, test_urls): Use BEL
+       instead of ST sequence to terminate OSC 8 strings.
+
 2019-12-06  Andreas Krebbel  <krebbel@linux.ibm.com>
            Vladimir Makarov  <vmakarov@redhat.com>
 
index c57a3dbd887cf79102e8ed5654921b6f9029a9fc..3aa2c4b3281b55a7ecd76648fd49e8637dddbc87 100644 (file)
@@ -2043,7 +2043,10 @@ identifier_to_locale (const char *ident)
    >
    > OSC 8 ; ; ST
    >
-   > OSC (operating system command) is typically ESC ].  */
+   > OSC (operating system command) is typically ESC ].
+
+   Use BEL instead of ST, as that is currently rendered better in some
+   terminal emulators that don't support OSC 8, like konsole.  */
 
 /* If URL-printing is enabled, write an "open URL" escape sequence to PP
    for the given URL.  */
@@ -2052,7 +2055,7 @@ void
 pp_begin_url (pretty_printer *pp, const char *url)
 {
   if (pp->show_urls)
-    pp_printf (pp, "\33]8;;%s\33\\", url);
+    pp_printf (pp, "\33]8;;%s\a", url);
 }
 
 /* If URL-printing is enabled, write a "close URL" escape sequence to PP.  */
@@ -2061,7 +2064,7 @@ void
 pp_end_url (pretty_printer *pp)
 {
   if (pp->show_urls)
-    pp_string (pp, "\33]8;;\33\\");
+    pp_string (pp, "\33]8;;\a");
 }
 
 #if CHECKING_P
@@ -2369,7 +2372,7 @@ test_urls ()
     pp_begin_url (&pp, "http://example.com");
     pp_string (&pp, "This is a link");
     pp_end_url (&pp);
-    ASSERT_STREQ ("\33]8;;http://example.com\33\\This is a link\33]8;;\33\\",
+    ASSERT_STREQ ("\33]8;;http://example.com\aThis is a link\33]8;;\a",
                  pp_formatted_text (&pp));
   }
 }