From 2c923b03ead83c0ebcaf7e4b8bd1c8e39fb5ffb4 Mon Sep 17 00:00:00 2001 From: Fazal Majid Date: Thu, 27 Dec 2018 17:28:48 -0800 Subject: [PATCH] use functions from github.com/kr/pty to resize terminal, for Solaris support (and also reduce code duplication) --- backend/localcommand/local_command.go | 27 ++++++++------------------- 1 file changed, 8 insertions(+), 19 deletions(-) diff --git a/backend/localcommand/local_command.go b/backend/localcommand/local_command.go index 4beca86..b4cbeeb 100644 --- a/backend/localcommand/local_command.go +++ b/backend/localcommand/local_command.go @@ -5,7 +5,6 @@ import ( "os/exec" "syscall" "time" - "unsafe" "github.com/kr/pty" "github.com/pkg/errors" @@ -99,25 +98,15 @@ func (lcmd *LocalCommand) WindowTitleVariables() map[string]interface{} { } func (lcmd *LocalCommand) ResizeTerminal(width int, height int) error { - window := struct { - row uint16 - col uint16 - x uint16 - y uint16 - }{ - uint16(height), - uint16(width), - 0, - 0, + window := pty.Winsize{ + Rows: uint16(height), + Cols: uint16(width), + X: 0, + Y: 0, } - _, _, errno := syscall.Syscall( - syscall.SYS_IOCTL, - lcmd.pty.Fd(), - syscall.TIOCSWINSZ, - uintptr(unsafe.Pointer(&window)), - ) - if errno != 0 { - return errno + err := pty.Setsize(lcmd.pty, &window) + if err != nil { + return err } else { return nil }