From 47d284267a7d6a8668fa0494881edc0709b2e980 Mon Sep 17 00:00:00 2001 From: Joseph Cumines Date: Tue, 5 Sep 2023 06:14:46 +1000 Subject: [PATCH] prompt: Fix restoring terminal pass down and use fd fbshipit-source-id: bb28650 --- reader_posix.go | 2 +- term/term.go | 9 +++++++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/reader_posix.go b/reader_posix.go index 85a62a63..f026cdb4 100644 --- a/reader_posix.go +++ b/reader_posix.go @@ -37,7 +37,7 @@ func (t *PosixReader) Open() error { // Close should be called after stopping input func (t *PosixReader) Close() error { - if err := term.Restore(); err != nil { + if err := term.RestoreFD(t.fd); err != nil { _ = syscall.Close(t.fd) return err } diff --git a/term/term.go b/term/term.go index 9d3f41ab..2eb9db94 100644 --- a/term/term.go +++ b/term/term.go @@ -37,9 +37,14 @@ func getOriginalTermios(fd int) (*unix.Termios, error) { // Restore terminal's mode. func Restore() error { - o, err := getOriginalTermios(saveTermiosFD) + return RestoreFD(saveTermiosFD) +} + +// RestoreFD restores terminal's mode for the given file descriptor. +func RestoreFD(fd int) error { + o, err := getOriginalTermios(fd) if err != nil { return err } - return termios.Tcsetattr(uintptr(saveTermiosFD), termios.TCSANOW, o) + return termios.Tcsetattr(uintptr(fd), termios.TCSANOW, o) }