summaryrefslogtreecommitdiff
path: root/tools/check_for_upgrade.sh
diff options
context:
space:
mode:
Diffstat (limited to 'tools/check_for_upgrade.sh')
-rw-r--r--tools/check_for_upgrade.sh10
1 files changed, 9 insertions, 1 deletions
diff --git a/tools/check_for_upgrade.sh b/tools/check_for_upgrade.sh
index 33f30c85a..a36aecb84 100644
--- a/tools/check_for_upgrade.sh
+++ b/tools/check_for_upgrade.sh
@@ -95,13 +95,21 @@ function has_typed_input() {
emulate -L zsh
zmodload zsh/zselect
+ # Back up stty settings prior to disabling canonical mode
+ # Consider that no input can be typed if stty fails
+ # (this might happen if stdin is not a terminal)
+ local termios
+ termios=$(stty --save 2>/dev/null) || return 1
{
- local termios=$(stty --save)
+ # Disable canonical mode so that typed input counts
+ # regardless of whether Enter was pressed
stty -icanon
+ # Poll stdin (fd 0) for data ready to be read
zselect -t 0 -r 0
return $?
} always {
+ # Restore stty settings
stty $termios
}
}