https://bugs.winehq.org/show_bug.cgi?id=56597
Bug ID: 56597 Summary: Wine does not recognize ANSI escape codes Product: Wine Version: 9.7 Hardware: x86-64 OS: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: ucrtbase Assignee: wine-bugs@winehq.org Reporter: wszqkzqk@qq.com Distribution: ---
Created attachment 76355 --> https://bugs.winehq.org/attachment.cgi?id=76355 binary file to reproduce
According to [Wikipedia](https://en.wikipedia.org/wiki/ANSI_escape_code#DOS_and_Windows) and [Windows API docs](https://learn.microsoft.com/en-us/windows/console/console-virtual-terminal-s...), Windows has supported ANSI escape code since Windows 10 version 1511.
```c #include <locale.h> #include <stdio.h>
int main () { setlocale (LC_ALL, ""); fprintf (stdout, "\x1b[32m" "\x1b[1m" "STDOUT" "\x1b[0m" "\n"); fprintf (stderr, "\x1b[31m" "\x1b[1m" "STDERR" "\x1b[0m" "\n"); } ```
For this example (compiled with clang 18 in msys2, linked to `ucrtbase.dll`), the characters can be escaped with color and bold and output as we expected under Windows. However, run these program in wine will directly print out the escape code without escaping:
``` [32m[1mSTDOUT[0m [31m[1mSTDERR[0m ```