Skip to content

Commit

Permalink
Revert "Close handles to /dev/tty", instead reuse handles
Browse files Browse the repository at this point in the history
  • Loading branch information
junegunn committed May 14, 2024
1 parent 218843b commit c4cc789
Showing 1 changed file with 22 additions and 5 deletions.
27 changes: 22 additions & 5 deletions src/tui/light_unix.go
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,11 @@ import (
"golang.org/x/term"
)

var tty string
var (
tty string
ttyin *os.File
ttyout *os.File
)

func IsLightRendererSupported() bool {
return true
Expand Down Expand Up @@ -47,8 +51,7 @@ func (r *LightRenderer) initPlatform() error {
}

func (r *LightRenderer) closePlatform() {
r.ttyin.Close()
r.ttyout.Close()
// NOOP
}

func openTty(mode int) (*os.File, error) {
Expand All @@ -68,11 +71,25 @@ func openTty(mode int) (*os.File, error) {
}

func openTtyIn() (*os.File, error) {
return openTty(syscall.O_RDONLY)
if ttyin != nil {
return ttyin, nil
}
in, err := openTty(syscall.O_RDONLY)
if err == nil {
ttyin = in
}
return in, err
}

func openTtyOut() (*os.File, error) {
return openTty(syscall.O_WRONLY)
if ttyout != nil {
return ttyout, nil
}
out, err := openTty(syscall.O_WRONLY)
if err == nil {
ttyout = out
}
return out, err
}

func (r *LightRenderer) setupTerminal() {
Expand Down

0 comments on commit c4cc789

Please sign in to comment.