From: Junio C Hamano Date: Sat, 15 Sep 2012 04:32:01 +0000 (-0700) Subject: Merge branch 'jc/send-email-reconfirm' into maint X-Git-Tag: v1.7.12.1~12 X-Git-Url: https://git.lorimer.id.au/gitweb.git/diff_plain/448e3700a0eb5acff5e52882b7941e0cfee6c5f3?hp=-c Merge branch 'jc/send-email-reconfirm' into maint * jc/send-email-reconfirm: send-email: validate & reconfirm interactive responses --- 448e3700a0eb5acff5e52882b7941e0cfee6c5f3 diff --combined git-send-email.perl index 664713709c,e89729bf43..607137b9aa --- a/git-send-email.perl +++ b/git-send-email.perl @@@ -681,6 -681,7 +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 +699,12 @@@ 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 +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 +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*