term.ReadPassword reads the terminal with a raw read that returns 0 bytes at the end of input and takes that as nothing yet, so Ctrl-D at the prompt did nothing. On the Unix systems the prompt now sets the terminal as ReadPassword does and reads the line from standard input, which reports the end of input; elsewhere, such as Windows, it still uses ReadPassword. Ctrl-D with nothing typed gives an empty mnemonic, refused with status 1, and the terminal settings are put back. A test runs the tool on a pseudo-terminal (github.com/creack/pty, at a commit past v1.1.24, whose Open on Linux can return another pty's terminal) and types Ctrl-D at the prompt. Model: opus-5-5
This commit is contained in:
@@ -0,0 +1,12 @@
|
||||
//go:build darwin || dragonfly || freebsd || netbsd || openbsd
|
||||
|
||||
package mnemonic
|
||||
|
||||
import "golang.org/x/sys/unix"
|
||||
|
||||
// The requests that read and set the terminal settings, as
|
||||
// golang.org/x/term names them.
|
||||
const (
|
||||
ioctlReadTermios = unix.TIOCGETA
|
||||
ioctlWriteTermios = unix.TIOCSETA
|
||||
)
|
||||
Reference in New Issue
Block a user