cli/pkg/iostreams/console_windows.go
Mislav Marohnić 436d9ef859
Fix "missing method Fd" crash on Windows (#6200)
This ensures that `IOStreams.Out` always keeps the original `Fd()` value even if it's wrapped as a Colorable stream for Windows in cases when enabling virtual terminal processing has failed.
2022-09-06 17:29:06 +02:00

16 lines
355 B
Go

//go:build windows
// +build windows
package iostreams
import (
"golang.org/x/sys/windows"
)
func enableVirtualTerminalProcessing(fd uintptr) error {
stdout := windows.Handle(fd)
var originalMode uint32
windows.GetConsoleMode(stdout, &originalMode)
return windows.SetConsoleMode(stdout, originalMode|windows.ENABLE_VIRTUAL_TERMINAL_PROCESSING)
}