I ran all commands on cmd from within Windows Terminal. Note that running cmd.exe directly, and running cmd from the Windows Terminal is not the same. cmd.exe does not support ANSI codes.
Also, what do you mean you can't reproduce the issue? Was it because of insufficient information, or because the commands worked perfectly on your system? By the way, I've attached my cygcheck.out; I forgot to attach it at first. I've redacted my username and computer name. I noticed you didn't include python information in your environment. You can install the missing lolpython dependency from PiPy by running `pip install lolpython` -------- Original Message -------- On Jun. 14, 2022, 7:47 a.m., Takashi Yano < [email protected]> wrote: > On Tue, 14 Jun 2022 08:01:45 +0000 5990 via Cygwin wrote: > ## Bug: > Piping > the standard output of cat into the standard input of golang or python, makes > the Windows Terminal render ANSI codes as arrows. > > For example: > > `\033[36m` turns into `←[36m` (or in base64'd UNICODE: `4oaQWzM2bQ==`) > > ## > Environment: > - cat v8.26 > - Windows Terminal v1.12.10982.0 > - golang > version go1.17.2 windows/amd64 > - python v3.7.7 > > colors.go > ``` > > package main > > import "fmt" > > const colorReset = "\033[0m" > const > colorCyan = "\033[36m" > > func main(){ > fmt.Print(string(colorCyan) + > "golang-test" + string(colorReset) + "\n") > } > ``` > > > color.py > ``` > > from lolpython import lol_py > > lol_py("python-test") > ``` > > > > domains.txt is an empty file (from my testing, the contents of domains.txt do > not affect this bug) > > ## What works: > The following commands will > successfuly output in cyan color > `go run color.go` > `go build color.go && > color.exe` > `go build color.go && cat domains.txt | color.exe` > `go build > color.go && echo a | color.exe` > `go build color.go && type domains.txt | > color.exe` > `py -3.7 color.py` > > ## What triggers the bug: > `cat > domains.txt | go run color.go` > OUTPUT: `←[36mgolang-test←[0m` > > `cat > domains.txt | py -3.7 color.py` > OUTPUT: > `←[38;2;128;237;18mp←[0m←[38;2;139;231;12my←[0m←[38;2;150;225;8mt←[0m←[38;2;161;217;5mh←[0m←[38;2;172;209;2mo←[0m←[38;2;182;200;1mn←[0m←[38;2;192;190;1m-←[0m←[38;2;201;180;1mt←[0m←[38;2;210;170;3me←[0m←[38;2;218;159;5ms←[0m←[38;2;226;148;9mt←[0m` > > > Strangely enough, golang compiled executables work perfectly, but piping > `cat domains.txt | go run color.go` does not work. > The workaround I had to > go with is to use Windows's built-in `type` command instead of `cat`. This > was a tricky bug to track-down so I hope this report helps hahah I cannot > reproduce your problem. My environment is: cygwin 3.3.5 cat 8.32 Windows > Terminal 1.13.11431.0 go version go1.18.3 windows/amd64 What shell did you > use? cygwin bash? cmd.exe? powershell? -- Takashi Yano
cygcheck.out
Description: Binary data
-- Problem reports: https://cygwin.com/problems.html FAQ: https://cygwin.com/faq/ Documentation: https://cygwin.com/docs.html Unsubscribe info: https://cygwin.com/ml/#unsubscribe-simple

