From 0b9be245c16cc7838ed7c25db2ec39c6eaa55fbe Mon Sep 17 00:00:00 2001 From: Martin Lindhe Date: Sat, 3 Dec 2022 03:00:31 +0100 Subject: [PATCH] windows: enable virtual terminal processing, fixes #169 --- color_windows.go | 17 +++++++++++++++++ go.mod | 1 + 2 files changed, 18 insertions(+) create mode 100644 color_windows.go diff --git a/color_windows.go b/color_windows.go new file mode 100644 index 0000000..0f175d0 --- /dev/null +++ b/color_windows.go @@ -0,0 +1,17 @@ +package color + +import ( + "os" + + "golang.org/x/sys/windows" +) + +func init() { + // Opt-in for ansi color support for current process. + // https://learn.microsoft.com/en-us/windows/console/console-virtual-terminal-sequences#output-sequences + var outMode uint32 + out := windows.Handle(os.Stdout.Fd()) + if err := windows.GetConsoleMode(out, &outMode); err == nil { + _ = windows.SetConsoleMode(out, outMode|windows.ENABLE_VIRTUAL_TERMINAL_PROCESSING) + } +} diff --git a/go.mod b/go.mod index 4cd6027..0bed4de 100644 --- a/go.mod +++ b/go.mod @@ -5,4 +5,5 @@ go 1.13 require ( github.com/mattn/go-colorable v0.1.13 github.com/mattn/go-isatty v0.0.16 + golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab )