Exemplo n.º 1
0
// RawMode places the terminal into raw mode.
func RawMode(t *Term) error {
	var a attr
	if err := termios.Tcgetattr(uintptr(t.fd), (*syscall.Termios)(&a)); err != nil {
		return err
	}
	termios.Cfmakeraw((*syscall.Termios)(&a))
	return termios.Tcsetattr(uintptr(t.fd), termios.TCSANOW, (*syscall.Termios)(&a))
}
Exemplo n.º 2
0
func SetRaw(tty *os.File) error {
	var attr syscall.Termios

	err := termios.Tcgetattr(uintptr(tty.Fd()), (*syscall.Termios)(&attr))
	if err != nil {
		return err
	}

	termios.Cfmakeraw((*syscall.Termios)(&attr))

	return termios.Tcsetattr(uintptr(tty.Fd()), termios.TCSANOW, (*syscall.Termios)(&attr))
}
Exemplo n.º 3
0
func makeRaw(fd uintptr) (syscall.Termios, error) {
	orig, err := tcgetattr(fd)
	if err != nil {
		return orig, err
	}

	t := orig
	termios.Cfmakeraw(&t)
	if err := tcsetattr(fd, t); err != nil {
		return orig, err
	}
	return orig, nil
}