diff options
author | Peter Powell <petpow@saberuk.com> | 2019-01-29 02:14:09 +0000 |
---|---|---|
committer | Peter Powell <petpow@saberuk.com> | 2019-01-29 21:18:18 +0000 |
commit | a580cacb192ba458b2f643b549ce5b9348eab9d0 (patch) | |
tree | acc54ae7811f862779b799a914763f53d6ebed46 /make/console.pm | |
parent | f1c3833663cec2e4fa7444dbd91556073c94b589 (diff) |
Improve the accessibility and robustness of prompt_bool.
- Use "yes" and "no" instead of "y" and "n".
- Validate the true and false responses properly.
- Keep prompting the user for a response until they give one which
is valid.
Diffstat (limited to 'make/console.pm')
-rw-r--r-- | make/console.pm | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/make/console.pm b/make/console.pm index 0d3c1b38d..132544caa 100644 --- a/make/console.pm +++ b/make/console.pm @@ -92,8 +92,12 @@ sub print_warning { sub prompt_bool($$$) { my ($interactive, $question, $default) = @_; - my $answer = prompt_string($interactive, $question, $default ? 'y' : 'n'); - return $answer =~ /y/i; + while (1) { + my $answer = prompt_string($interactive, $question, $default ? 'yes' : 'no'); + return 1 if $answer =~ /^y(?:es)?$/i; + return 0 if $answer =~ /^no?$/i; + print_warning "\"$answer\" is not \"yes\" or \"no\". Please try again.\n"; + } } sub prompt_dir($$$;$) { |