From 2be7b6733b68aba78f48ee9ffc3c1321a0ec501f Mon Sep 17 00:00:00 2001 From: Tobias Klauser Date: Fri, 1 Sep 2017 14:43:09 +0200 Subject: [PATCH] pkg/term: use IoctlGetWinsize/IoctlSetWinsize from golang.org/x/sys/unix Use unix.IoctlGetWinsize and unix.IoctlSetWinsize instead of manually reimplementing them. Signed-off-by: Tobias Klauser Upstream-commit: 32dfc0cb64992aa5e208273658b6e404268c63f4 Component: engine --- components/engine/pkg/term/winsize.go | 18 ++++-------------- 1 file changed, 4 insertions(+), 14 deletions(-) diff --git a/components/engine/pkg/term/winsize.go b/components/engine/pkg/term/winsize.go index f58367fe66..85c4d9d67e 100644 --- a/components/engine/pkg/term/winsize.go +++ b/components/engine/pkg/term/winsize.go @@ -3,28 +3,18 @@ package term import ( - "unsafe" - "golang.org/x/sys/unix" ) // GetWinsize returns the window size based on the specified file descriptor. func GetWinsize(fd uintptr) (*Winsize, error) { - ws := &Winsize{} - _, _, err := unix.Syscall(unix.SYS_IOCTL, fd, uintptr(unix.TIOCGWINSZ), uintptr(unsafe.Pointer(ws))) - // Skipp errno = 0 - if err == 0 { - return ws, nil - } + uws, err := unix.IoctlGetWinsize(int(fd), unix.TIOCGWINSZ) + ws := &Winsize{Height: uws.Row, Width: uws.Col, x: uws.Xpixel, y: uws.Ypixel} return ws, err } // SetWinsize tries to set the specified window size for the specified file descriptor. func SetWinsize(fd uintptr, ws *Winsize) error { - _, _, err := unix.Syscall(unix.SYS_IOCTL, fd, uintptr(unix.TIOCSWINSZ), uintptr(unsafe.Pointer(ws))) - // Skipp errno = 0 - if err == 0 { - return nil - } - return err + uws := &unix.Winsize{Row: ws.Height, Col: ws.Width, Xpixel: ws.x, Ypixel: ws.y} + return unix.IoctlSetWinsize(int(fd), unix.TIOCSWINSZ, uws) }