From 661786808c8a5249e05672af1f4d9cfaef39b38e Mon Sep 17 00:00:00 2001 From: Akihiro Suda Date: Fri, 18 Sep 2020 02:16:25 +0900 Subject: update github.com/docker/docker and relevant deps Signed-off-by: Akihiro Suda --- vendor/github.com/moby/term/windows/console.go | 39 ++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 vendor/github.com/moby/term/windows/console.go (limited to 'vendor/github.com/moby/term/windows/console.go') diff --git a/vendor/github.com/moby/term/windows/console.go b/vendor/github.com/moby/term/windows/console.go new file mode 100644 index 000000000..01fdc0f2a --- /dev/null +++ b/vendor/github.com/moby/term/windows/console.go @@ -0,0 +1,39 @@ +// +build windows + +package windowsconsole + +import ( + "os" + + "golang.org/x/sys/windows" +) + +// GetHandleInfo returns file descriptor and bool indicating whether the file is a console. +func GetHandleInfo(in interface{}) (uintptr, bool) { + switch t := in.(type) { + case *ansiReader: + return t.Fd(), true + case *ansiWriter: + return t.Fd(), true + } + + var inFd uintptr + var isTerminal bool + + if file, ok := in.(*os.File); ok { + inFd = file.Fd() + isTerminal = isConsole(inFd) + } + return inFd, isTerminal +} + +// IsConsole returns true if the given file descriptor is a Windows Console. +// The code assumes that GetConsoleMode will return an error for file descriptors that are not a console. +// Deprecated: use golang.org/x/sys/windows.GetConsoleMode() or golang.org/x/crypto/ssh/terminal.IsTerminal() +var IsConsole = isConsole + +func isConsole(fd uintptr) bool { + var mode uint32 + err := windows.GetConsoleMode(windows.Handle(fd), &mode) + return err == nil +} -- cgit v1.2.3-54-g00ecf