summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Powell <petpow@saberuk.com>2019-01-29 02:14:09 +0000
committerPeter Powell <petpow@saberuk.com>2019-01-29 21:18:18 +0000
commita580cacb192ba458b2f643b549ce5b9348eab9d0 (patch)
treeacc54ae7811f862779b799a914763f53d6ebed46
parentf1c3833663cec2e4fa7444dbd91556073c94b589 (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.
-rw-r--r--make/console.pm8
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($$$;$) {