tty_bsd.go 627 B

12345678910111213141516171819202122232425262728
  1. // License: GPLv3 Copyright: 2022, Kovid Goyal, <kovid at kovidgoyal.net>
  2. //go:build darwin || freebsd || openbsd || netbsd || dragonfly
  3. // +build darwin freebsd openbsd netbsd dragonfly
  4. package tty
  5. import (
  6. "golang.org/x/sys/unix"
  7. )
  8. func Tcgetattr(fd int, argp *unix.Termios) error {
  9. return unix.IoctlSetTermios(fd, unix.TIOCGETA, argp)
  10. }
  11. func Tcsetattr(fd int, opt uintptr, argp *unix.Termios) error {
  12. switch opt {
  13. case TCSANOW:
  14. opt = unix.TIOCSETA
  15. case TCSADRAIN:
  16. opt = unix.TIOCSETAW
  17. case TCSAFLUSH:
  18. opt = unix.TIOCSETAF
  19. default:
  20. return unix.EINVAL
  21. }
  22. return unix.IoctlSetTermios(fd, uint(opt), argp)
  23. }