Merge branch 'jc/send-email-reconfirm'
Validate interactive input to "git send-email" to avoid common mistakes such as saying "y<RETURN>" to sender mail address whose prompt is given with a correctly guessed default. * jc/send-email-reconfirm: send-email: validate & reconfirm interactive responses
This commit is contained in:
commit
200282f1c7
@ -681,6 +681,7 @@ sub ask {
|
||||
my ($prompt, %arg) = @_;
|
||||
my $valid_re = $arg{valid_re};
|
||||
my $default = $arg{default};
|
||||
my $confirm_only = $arg{confirm_only};
|
||||
my $resp;
|
||||
my $i = 0;
|
||||
return defined $default ? $default : undef
|
||||
@ -698,6 +699,12 @@ sub ask {
|
||||
if (!defined $valid_re or $resp =~ /$valid_re/) {
|
||||
return $resp;
|
||||
}
|
||||
if ($confirm_only) {
|
||||
my $yesno = $term->readline("Are you sure you want to use <$resp> [y/N]? ");
|
||||
if (defined $yesno && $yesno =~ /y/i) {
|
||||
return $resp;
|
||||
}
|
||||
}
|
||||
}
|
||||
return undef;
|
||||
}
|
||||
@ -745,13 +752,15 @@ my $prompting = 0;
|
||||
if (!defined $sender) {
|
||||
$sender = $repoauthor || $repocommitter || '';
|
||||
$sender = ask("Who should the emails appear to be from? [$sender] ",
|
||||
default => $sender);
|
||||
default => $sender,
|
||||
valid_re => qr/\@.*\./, confirm_only => 1);
|
||||
print "Emails will be sent from: ", $sender, "\n";
|
||||
$prompting++;
|
||||
}
|
||||
|
||||
if (!@initial_to && !defined $to_cmd) {
|
||||
my $to = ask("Who should the emails be sent to? ");
|
||||
my $to = ask("Who should the emails be sent to? ",
|
||||
valid_re => qr/\@.*\./, confirm_only => 1);
|
||||
push @initial_to, parse_address_line($to) if defined $to; # sanitized/validated later
|
||||
$prompting++;
|
||||
}
|
||||
@ -777,7 +786,8 @@ sub expand_one_alias {
|
||||
|
||||
if ($thread && !defined $initial_reply_to && $prompting) {
|
||||
$initial_reply_to = ask(
|
||||
"Message-ID to be used as In-Reply-To for the first email? ");
|
||||
"Message-ID to be used as In-Reply-To for the first email? ",
|
||||
valid_re => qr/\@.*\./, confirm_only => 1);
|
||||
}
|
||||
if (defined $initial_reply_to) {
|
||||
$initial_reply_to =~ s/^\s*<?//;
|
||||
|
Loading…
Reference in New Issue
Block a user