~juju-qa/ubuntu/xenial/juju/2.0-rc2

« back to all changes in this revision

Viewing changes to src/golang.org/x/crypto/ssh/terminal/util.go

  • Committer: Nicholas Skaggs
  • Date: 2016-09-30 14:39:30 UTC
  • mfrom: (1.8.1)
  • Revision ID: nicholas.skaggs@canonical.com-20160930143930-vwwhrefh6ftckccy
import upstream

Show diffs side-by-side

added added

removed removed

Lines of Context:
44
44
        }
45
45
 
46
46
        newState := oldState.termios
47
 
        newState.Iflag &^= syscall.ISTRIP | syscall.INLCR | syscall.ICRNL | syscall.IGNCR | syscall.IXON | syscall.IXOFF
48
 
        newState.Lflag &^= syscall.ECHO | syscall.ICANON | syscall.ISIG
 
47
        // This attempts to replicate the behaviour documented for cfmakeraw in
 
48
        // the termios(3) manpage.
 
49
        newState.Iflag &^= syscall.IGNBRK | syscall.BRKINT | syscall.PARMRK | syscall.ISTRIP | syscall.INLCR | syscall.IGNCR | syscall.ICRNL | syscall.IXON
 
50
        newState.Oflag &^= syscall.OPOST
 
51
        newState.Lflag &^= syscall.ECHO | syscall.ECHONL | syscall.ICANON | syscall.ISIG | syscall.IEXTEN
 
52
        newState.Cflag &^= syscall.CSIZE | syscall.PARENB
 
53
        newState.Cflag |= syscall.CS8
49
54
        if _, _, err := syscall.Syscall6(syscall.SYS_IOCTL, uintptr(fd), ioctlWriteTermios, uintptr(unsafe.Pointer(&newState)), 0, 0, 0); err != 0 {
50
55
                return nil, err
51
56
        }