diff options
author | OpenShift Merge Robot <openshift-merge-robot@users.noreply.github.com> | 2020-09-17 15:18:17 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-09-17 15:18:17 -0400 |
commit | 175d7b19dd15381d13082f896d7ce1594d7bdefa (patch) | |
tree | 7d78fa45249684da3a34dffe5e9475dca3fa529b /vendor/github.com/moby/term/termios.go | |
parent | dc23ef1cbf57458b6c47f3585e3433aaddc58184 (diff) | |
parent | 661786808c8a5249e05672af1f4d9cfaef39b38e (diff) | |
download | podman-175d7b19dd15381d13082f896d7ce1594d7bdefa.tar.gz podman-175d7b19dd15381d13082f896d7ce1594d7bdefa.tar.bz2 podman-175d7b19dd15381d13082f896d7ce1594d7bdefa.zip |
Merge pull request #7677 from AkihiroSuda/update-moby-20200918
update github.com/docker/docker and relevant deps
Diffstat (limited to 'vendor/github.com/moby/term/termios.go')
-rw-r--r-- | vendor/github.com/moby/term/termios.go | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/vendor/github.com/moby/term/termios.go b/vendor/github.com/moby/term/termios.go new file mode 100644 index 000000000..0f028e227 --- /dev/null +++ b/vendor/github.com/moby/term/termios.go @@ -0,0 +1,35 @@ +// +build !windows + +package term + +import ( + "golang.org/x/sys/unix" +) + +// Termios is the Unix API for terminal I/O. +type Termios = unix.Termios + +// MakeRaw puts the terminal connected to the given file descriptor into raw +// mode and returns the previous state of the terminal so that it can be +// restored. +func MakeRaw(fd uintptr) (*State, error) { + termios, err := tcget(fd) + if err != nil { + return nil, err + } + + oldState := State{termios: *termios} + + termios.Iflag &^= (unix.IGNBRK | unix.BRKINT | unix.PARMRK | unix.ISTRIP | unix.INLCR | unix.IGNCR | unix.ICRNL | unix.IXON) + termios.Oflag &^= unix.OPOST + termios.Lflag &^= (unix.ECHO | unix.ECHONL | unix.ICANON | unix.ISIG | unix.IEXTEN) + termios.Cflag &^= (unix.CSIZE | unix.PARENB) + termios.Cflag |= unix.CS8 + termios.Cc[unix.VMIN] = 1 + termios.Cc[unix.VTIME] = 0 + + if err := tcset(fd, termios); err != nil { + return nil, err + } + return &oldState, nil +} |