summaryrefslogtreecommitdiff
path: root/vendor/github.com/buger/goterm/terminal_sysioctl.go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/buger/goterm/terminal_sysioctl.go')
-rw-r--r--vendor/github.com/buger/goterm/terminal_sysioctl.go28
1 files changed, 5 insertions, 23 deletions
diff --git a/vendor/github.com/buger/goterm/terminal_sysioctl.go b/vendor/github.com/buger/goterm/terminal_sysioctl.go
index e98430fb9..5a61cd52b 100644
--- a/vendor/github.com/buger/goterm/terminal_sysioctl.go
+++ b/vendor/github.com/buger/goterm/terminal_sysioctl.go
@@ -3,34 +3,16 @@
package goterm
import (
- "fmt"
"os"
- "runtime"
- "syscall"
- "unsafe"
+ "golang.org/x/sys/unix"
)
-func getWinsize() (*winsize, error) {
- ws := new(winsize)
+func getWinsize() (*unix.Winsize, error) {
- var _TIOCGWINSZ int64
-
- switch runtime.GOOS {
- case "linux":
- _TIOCGWINSZ = 0x5413
- case "darwin":
- _TIOCGWINSZ = 1074295912
+ ws, err := unix.IoctlGetWinsize(int(os.Stdout.Fd()), unix.TIOCGWINSZ)
+ if err != nil {
+ return nil, os.NewSyscallError("GetWinsize", err)
}
- r1, _, errno := syscall.Syscall(syscall.SYS_IOCTL,
- uintptr(syscall.Stdin),
- uintptr(_TIOCGWINSZ),
- uintptr(unsafe.Pointer(ws)),
- )
-
- if int(r1) == -1 {
- fmt.Println("Error:", os.NewSyscallError("GetWinsize", errno))
- return nil, os.NewSyscallError("GetWinsize", errno)
- }
return ws, nil
}