diff --git a/internal/term/raw.go b/internal/term/raw.go index 7aa3ed8d..e2a4a7b8 100644 --- a/internal/term/raw.go +++ b/internal/term/raw.go @@ -25,5 +25,5 @@ func SetRaw(fd int) error { n.Cc[syscall.VMIN] = 1 n.Cc[syscall.VTIME] = 0 - return termios.Tcsetattr(uintptr(fd), termios.TCSANOW, (*unix.Termios)(n)) + return termios.Tcsetattr(uintptr(fd), termios.TCSANOW, (*unix.Termios)(&n)) } diff --git a/internal/term/term.go b/internal/term/term.go index 3f3a53c0..9c8e2e6b 100644 --- a/internal/term/term.go +++ b/internal/term/term.go @@ -15,13 +15,13 @@ var ( saveTermiosOnce sync.Once ) -func getOriginalTermios(fd int) (*unix.Termios, error) { +func getOriginalTermios(fd int) (unix.Termios, error) { var err error saveTermiosOnce.Do(func() { saveTermiosFD = fd saveTermios, err = termios.Tcgetattr(uintptr(fd)) }) - return saveTermios, err + return *saveTermios, err } // Restore terminal's mode. @@ -30,5 +30,5 @@ func Restore() error { if err != nil { return err } - return termios.Tcsetattr(uintptr(saveTermiosFD), termios.TCSANOW, o) + return termios.Tcsetattr(uintptr(saveTermiosFD), termios.TCSANOW, &o) }