src.elv.sh@v0.21.0-dev.0.20240515223629-06979efb9a2a/pkg/sys/winsize_windows.go (about) 1 package sys 2 3 import ( 4 "os" 5 "syscall" 6 7 "golang.org/x/sys/windows" 8 ) 9 10 // Windows doesn't have SIGCH, so use an impossible value. 11 const sigWINCH = syscall.Signal(-1) 12 13 func winSize(file *os.File) (row, col int) { 14 var info windows.ConsoleScreenBufferInfo 15 err := windows.GetConsoleScreenBufferInfo(windows.Handle(file.Fd()), &info) 16 if err != nil { 17 return -1, -1 18 } 19 window := info.Window 20 return int(window.Bottom - window.Top), int(window.Right - window.Left) 21 }