Skip to content

Commit 4758e87

Browse files
committed
Avoid modifying saved terminal state
Fixes: c-bata#228
1 parent a3fa2e6 commit 4758e87

File tree

2 files changed

+4
-4
lines changed

2 files changed

+4
-4
lines changed

internal/term/raw.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -25,5 +25,5 @@ func SetRaw(fd int) error {
2525
n.Cc[syscall.VMIN] = 1
2626
n.Cc[syscall.VTIME] = 0
2727

28-
return termios.Tcsetattr(uintptr(fd), termios.TCSANOW, (*unix.Termios)(n))
28+
return termios.Tcsetattr(uintptr(fd), termios.TCSANOW, (*unix.Termios)(&n))
2929
}

internal/term/term.go

+3-3
Original file line numberDiff line numberDiff line change
@@ -15,13 +15,13 @@ var (
1515
saveTermiosOnce sync.Once
1616
)
1717

18-
func getOriginalTermios(fd int) (*unix.Termios, error) {
18+
func getOriginalTermios(fd int) (unix.Termios, error) {
1919
var err error
2020
saveTermiosOnce.Do(func() {
2121
saveTermiosFD = fd
2222
saveTermios, err = termios.Tcgetattr(uintptr(fd))
2323
})
24-
return saveTermios, err
24+
return *saveTermios, err
2525
}
2626

2727
// Restore terminal's mode.
@@ -30,5 +30,5 @@ func Restore() error {
3030
if err != nil {
3131
return err
3232
}
33-
return termios.Tcsetattr(uintptr(saveTermiosFD), termios.TCSANOW, o)
33+
return termios.Tcsetattr(uintptr(saveTermiosFD), termios.TCSANOW, &o)
3434
}

0 commit comments

Comments
 (0)