summaryrefslogtreecommitdiff
path: root/winsize_linux.go
diff options
context:
space:
mode:
Diffstat (limited to 'winsize_linux.go')
-rw-r--r--winsize_linux.go27
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)
+}