summaryrefslogtreecommitdiff
path: root/vendor/github.com/moby/term/termios.go
diff options
context:
space:
mode:
authorOpenShift Merge Robot <openshift-merge-robot@users.noreply.github.com>2020-09-17 15:18:17 -0400
committerGitHub <noreply@github.com>2020-09-17 15:18:17 -0400
commit175d7b19dd15381d13082f896d7ce1594d7bdefa (patch)
tree7d78fa45249684da3a34dffe5e9475dca3fa529b /vendor/github.com/moby/term/termios.go
parentdc23ef1cbf57458b6c47f3585e3433aaddc58184 (diff)
parent661786808c8a5249e05672af1f4d9cfaef39b38e (diff)
downloadpodman-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.go35
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
+}