From 5d837e5ab31544c7cb4026e3438f8e5818e5d5dd Mon Sep 17 00:00:00 2001 From: Anthony Romano Date: Tue, 30 May 2017 10:27:35 -0700 Subject: [PATCH] vendor: kr/pty v1.0.0 --- cmd/vendor/github.com/kr/pty/ioctl.go | 2 + cmd/vendor/github.com/kr/pty/pty_dragonfly.go | 76 +++++++++++++++++++ .../github.com/kr/pty/pty_unsupported.go | 2 +- cmd/vendor/github.com/kr/pty/run.go | 2 + .../github.com/kr/pty/types_dragonfly.go | 17 +++++ cmd/vendor/github.com/kr/pty/util.go | 2 + .../kr/pty/ztypes_dragonfly_amd64.go | 14 ++++ cmd/vendor/github.com/kr/pty/ztypes_mipsx.go | 12 +++ glide.lock | 8 +- glide.yaml | 2 +- 10 files changed, 131 insertions(+), 6 deletions(-) create mode 100644 cmd/vendor/github.com/kr/pty/pty_dragonfly.go create mode 100644 cmd/vendor/github.com/kr/pty/types_dragonfly.go create mode 100644 cmd/vendor/github.com/kr/pty/ztypes_dragonfly_amd64.go create mode 100644 cmd/vendor/github.com/kr/pty/ztypes_mipsx.go diff --git a/cmd/vendor/github.com/kr/pty/ioctl.go b/cmd/vendor/github.com/kr/pty/ioctl.go index 5b856e871..c57c19e7e 100644 --- a/cmd/vendor/github.com/kr/pty/ioctl.go +++ b/cmd/vendor/github.com/kr/pty/ioctl.go @@ -1,3 +1,5 @@ +// +build !windows + package pty import "syscall" diff --git a/cmd/vendor/github.com/kr/pty/pty_dragonfly.go b/cmd/vendor/github.com/kr/pty/pty_dragonfly.go new file mode 100644 index 000000000..5431fb5ae --- /dev/null +++ b/cmd/vendor/github.com/kr/pty/pty_dragonfly.go @@ -0,0 +1,76 @@ +package pty + +import ( + "errors" + "os" + "strings" + "syscall" + "unsafe" +) + +// same code as pty_darwin.go +func open() (pty, tty *os.File, err error) { + p, err := os.OpenFile("/dev/ptmx", os.O_RDWR, 0) + if err != nil { + return nil, nil, err + } + + sname, err := ptsname(p) + if err != nil { + return nil, nil, err + } + + err = grantpt(p) + if err != nil { + return nil, nil, err + } + + err = unlockpt(p) + if err != nil { + return nil, nil, err + } + + t, err := os.OpenFile(sname, os.O_RDWR, 0) + if err != nil { + return nil, nil, err + } + return p, t, nil +} + +func grantpt(f *os.File) error { + _, err := isptmaster(f.Fd()) + return err +} + +func unlockpt(f *os.File) error { + _, err := isptmaster(f.Fd()) + return err +} + +func isptmaster(fd uintptr) (bool, error) { + err := ioctl(fd, syscall.TIOCISPTMASTER, 0) + return err == nil, err +} + +var ( + emptyFiodgnameArg fiodgnameArg + ioctl_FIODNAME = _IOW('f', 120, unsafe.Sizeof(emptyFiodgnameArg)) +) + +func ptsname(f *os.File) (string, error) { + name := make([]byte, _C_SPECNAMELEN) + fa := fiodgnameArg{Name: (*byte)(unsafe.Pointer(&name[0])), Len: _C_SPECNAMELEN, Pad_cgo_0: [4]byte{0, 0, 0, 0}} + + err := ioctl(f.Fd(), ioctl_FIODNAME, uintptr(unsafe.Pointer(&fa))) + if err != nil { + return "", err + } + + for i, c := range name { + if c == 0 { + s := "/dev/" + string(name[:i]) + return strings.Replace(s, "ptm", "pts", -1), nil + } + } + return "", errors.New("TIOCPTYGNAME string not NUL-terminated") +} diff --git a/cmd/vendor/github.com/kr/pty/pty_unsupported.go b/cmd/vendor/github.com/kr/pty/pty_unsupported.go index 898c7303c..bd3d1e7e0 100644 --- a/cmd/vendor/github.com/kr/pty/pty_unsupported.go +++ b/cmd/vendor/github.com/kr/pty/pty_unsupported.go @@ -1,4 +1,4 @@ -// +build !linux,!darwin,!freebsd +// +build !linux,!darwin,!freebsd,!dragonfly package pty diff --git a/cmd/vendor/github.com/kr/pty/run.go b/cmd/vendor/github.com/kr/pty/run.go index c2bc48878..baecca8af 100644 --- a/cmd/vendor/github.com/kr/pty/run.go +++ b/cmd/vendor/github.com/kr/pty/run.go @@ -1,3 +1,5 @@ +// +build !windows + package pty import ( diff --git a/cmd/vendor/github.com/kr/pty/types_dragonfly.go b/cmd/vendor/github.com/kr/pty/types_dragonfly.go new file mode 100644 index 000000000..5c0493b85 --- /dev/null +++ b/cmd/vendor/github.com/kr/pty/types_dragonfly.go @@ -0,0 +1,17 @@ +// +build ignore + +package pty + +/* +#define _KERNEL +#include +#include +#include +*/ +import "C" + +const ( + _C_SPECNAMELEN = C.SPECNAMELEN /* max length of devicename */ +) + +type fiodgnameArg C.struct_fiodname_args diff --git a/cmd/vendor/github.com/kr/pty/util.go b/cmd/vendor/github.com/kr/pty/util.go index 67c52d06c..a4fab9a7c 100644 --- a/cmd/vendor/github.com/kr/pty/util.go +++ b/cmd/vendor/github.com/kr/pty/util.go @@ -1,3 +1,5 @@ +// +build !windows + package pty import ( diff --git a/cmd/vendor/github.com/kr/pty/ztypes_dragonfly_amd64.go b/cmd/vendor/github.com/kr/pty/ztypes_dragonfly_amd64.go new file mode 100644 index 000000000..6b0ba037f --- /dev/null +++ b/cmd/vendor/github.com/kr/pty/ztypes_dragonfly_amd64.go @@ -0,0 +1,14 @@ +// Created by cgo -godefs - DO NOT EDIT +// cgo -godefs types_dragonfly.go + +package pty + +const ( + _C_SPECNAMELEN = 0x3f +) + +type fiodgnameArg struct { + Name *byte + Len uint32 + Pad_cgo_0 [4]byte +} diff --git a/cmd/vendor/github.com/kr/pty/ztypes_mipsx.go b/cmd/vendor/github.com/kr/pty/ztypes_mipsx.go new file mode 100644 index 000000000..f0ce74086 --- /dev/null +++ b/cmd/vendor/github.com/kr/pty/ztypes_mipsx.go @@ -0,0 +1,12 @@ +// Created by cgo -godefs - DO NOT EDIT +// cgo -godefs types.go + +// +build linux +// +build mips mipsle mips64 mips64le + +package pty + +type ( + _C_int int32 + _C_uint uint32 +) diff --git a/glide.lock b/glide.lock index 8c37c45f3..b3e4f0063 100644 --- a/glide.lock +++ b/glide.lock @@ -1,5 +1,5 @@ -hash: 65a42af5f01e04374d1596c91179563d6f00dbb9a29c8f37291575ea086ceec7 -updated: 2017-05-26T16:06:30.855409-07:00 +hash: 14e575e5e990839e9e95354d176bd6596d974dbf2f17968775d546fb1e5929be +updated: 2017-05-30T10:25:53.171031047-07:00 imports: - name: github.com/beorn7/perks version: 4c0e84591b9aa9e6dcfdf3e020114cd81f89d5f9 @@ -64,7 +64,7 @@ imports: - name: github.com/jonboulle/clockwork version: 2eee05ed794112d45db504eb05aa693efd2b8b09 - name: github.com/kr/pty - version: f7ee69f31298ecbe5d2b349c711e2547a617d398 + version: 2c10821df3c3cf905230d078702dfbe9404c9b23 - name: github.com/mattn/go-runewidth version: 9e777a8366cce605130a531d2cd6363d07ad7317 subpackages: @@ -127,7 +127,7 @@ imports: subpackages: - unix - name: golang.org/x/text - version: 19e51611da83d6be54ddafce4a4af510cb3e9ea4 + version: 4ee4af566555f5fbe026368b75596286a312663a subpackages: - secure/bidirule - transform diff --git a/glide.yaml b/glide.yaml index 798b9a426..da89819e9 100644 --- a/glide.yaml +++ b/glide.yaml @@ -48,7 +48,7 @@ import: - package: github.com/jonboulle/clockwork version: v0.1.0 - package: github.com/kr/pty - version: f7ee69f31298ecbe5d2b349c711e2547a617d398 + version: v1.0.0 - package: github.com/olekukonko/tablewriter version: a0225b3f23b5ce0cbec6d7a66a968f8a59eca9c4 - package: github.com/mattn/go-runewidth