diff options
Diffstat (limited to 'winsize.go')
-rw-r--r-- | winsize.go | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/winsize.go b/winsize.go new file mode 100644 index 0000000..1a3bdaf --- /dev/null +++ b/winsize.go @@ -0,0 +1,29 @@ +package main + +// +build linux + +import ( + "syscall" + "unsafe" +) + +type winsize struct { + Row uint16 + Col uint16 + Xpixel uint16 + Ypixel uint16 +} + +func init() { + ws := &winsize{} + retCode, _, errno := syscall.Syscall(syscall.SYS_IOCTL, + uintptr(syscall.Stdin), + uintptr(syscall.TIOCGWINSZ), + uintptr(unsafe.Pointer(ws))) + + if int(retCode) == -1 { + panic(errno) + } + + Width = int(ws.Col) +} |