blob: 83c398b16db4d4013aae61d0048ddfbf73fd4816 [file] [log] [blame]
David K. Bainbridge215e0242017-09-05 23:18:24 -07001// +build windows
2// +build !appengine
3
4package isatty
5
6import (
7 "syscall"
8 "unsafe"
9)
10
11var kernel32 = syscall.NewLazyDLL("kernel32.dll")
12var procGetConsoleMode = kernel32.NewProc("GetConsoleMode")
13
14// IsTerminal return true if the file descriptor is terminal.
15func IsTerminal(fd uintptr) bool {
16 var st uint32
17 r, _, e := syscall.Syscall(procGetConsoleMode.Addr(), 2, fd, uintptr(unsafe.Pointer(&st)), 0)
18 return r != 0 && e == 0
19}