diff options
Diffstat (limited to 'winsize_linux.go')
-rw-r--r-- | winsize_linux.go | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/winsize_linux.go b/winsize_linux.go new file mode 100644 index 0000000..ebb9f67 --- /dev/null +++ b/winsize_linux.go @@ -0,0 +1,27 @@ +package main + +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) +} |