Skip to content

Commit 53e0c99

Browse files
Merge in terminal exit fix from MR
c-bata#239
1 parent 82a9122 commit 53e0c99

File tree

2 files changed

+7
-5
lines changed

2 files changed

+7
-5
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

+6-4
Original file line numberDiff line numberDiff line change
@@ -10,16 +10,18 @@ import (
1010
)
1111

1212
var (
13-
saveTermios *unix.Termios
13+
saveTermios unix.Termios
1414
saveTermiosFD int
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
22-
saveTermios, err = termios.Tcgetattr(uintptr(fd))
22+
var saveTermiosPtr *unix.Termios
23+
saveTermiosPtr, err = termios.Tcgetattr(uintptr(fd))
24+
saveTermios = *saveTermiosPtr
2325
})
2426
return saveTermios, err
2527
}
@@ -30,5 +32,5 @@ func Restore() error {
3032
if err != nil {
3133
return err
3234
}
33-
return termios.Tcsetattr(uintptr(saveTermiosFD), termios.TCSANOW, o)
35+
return termios.Tcsetattr(uintptr(saveTermiosFD), termios.TCSANOW, &o)
3436
}

0 commit comments

Comments
 (0)