diff --git a/zpass/src/prompt.sh b/zpass/src/prompt.sh index 6bb7d6e..c466af2 100644 --- a/zpass/src/prompt.sh +++ b/zpass/src/prompt.sh @@ -3,13 +3,17 @@ # $1 = prompt console_prompt_hidden() { - local prompt - printf "%s" "$1" >&2 - stty -echo - read -r prompt || return $? - stty echo - printf "\n" >&2 - echo "$prompt" + ( + _tty_on() { stty echo; } + trap _tty_on INT + local prompt + printf "%s" "$1" >&2 + stty -echo + read -r prompt || { stty echo; return 1; } + stty echo + printf "\n" >&2 + echo "$prompt" + ) } # $1 = prompt message