aboutsummaryrefslogtreecommitdiff
path: root/vendor/github.com/moby/term/winsize.go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/moby/term/winsize.go')
-rw-r--r--vendor/github.com/moby/term/winsize.go20
1 files changed, 20 insertions, 0 deletions
diff --git a/vendor/github.com/moby/term/winsize.go b/vendor/github.com/moby/term/winsize.go
new file mode 100644
index 000000000..1ef98d599
--- /dev/null
+++ b/vendor/github.com/moby/term/winsize.go
@@ -0,0 +1,20 @@
+// +build !windows
+
+package term
+
+import (
+ "golang.org/x/sys/unix"
+)
+
+// GetWinsize returns the window size based on the specified file descriptor.
+func GetWinsize(fd uintptr) (*Winsize, error) {
+ 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 {
+ uws := &unix.Winsize{Row: ws.Height, Col: ws.Width, Xpixel: ws.x, Ypixel: ws.y}
+ return unix.IoctlSetWinsize(int(fd), unix.TIOCSWINSZ, uws)
+}