https://gcc.gnu.org/g:bc630d613db94eb50687a009ae6b45098ab02db5

commit r15-1356-gbc630d613db94eb50687a009ae6b45098ab02db5
Author: Peter Damianov <peter0...@disroot.org>
Date:   Mon Jun 3 10:07:10 2024 -0700

    pretty-print: Don't translate escape sequences to windows console API
    
    Modern versions of windows (after windows 10 v1511) support VT100 escape
    sequences, so translation for them is not necessary. The translation also
    mangles embedded warning documentation links.
    
    gcc/ChangeLog:
            * pretty-print.cc (mingw_ansi_fputs): Don't translate escape 
sequences if
            the console has ENABLE_VIRTUAL_TERMINAL_PROCESSING.
    
    Signed-off-by: Peter Damianov <peter0...@disroot.org>

Diff:
---
 gcc/pretty-print.cc | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/gcc/pretty-print.cc b/gcc/pretty-print.cc
index 639e2b881586..ec44172f24df 100644
--- a/gcc/pretty-print.cc
+++ b/gcc/pretty-print.cc
@@ -674,8 +674,9 @@ mingw_ansi_fputs (const char *str, FILE *fp)
   /* Don't mess up stdio functions with Windows APIs.  */
   fflush (fp);
 
-  if (GetConsoleMode (h, &mode))
-    /* If it is a console, translate ANSI escape codes as needed.  */
+  if (GetConsoleMode (h, &mode) && !(mode & 
ENABLE_VIRTUAL_TERMINAL_PROCESSING))
+    /* If it is a console, and doesn't support ANSI escape codes, translate
+       them as needed.  */
     for (;;)
       {
        if ((esc_code = find_esc_head (&prefix_len, &esc_head, read)) == 0)

Reply via email to