diff options
author | Junio C Hamano <gitster@pobox.com> | 2012-09-14 21:32:01 -0700 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2012-09-14 21:32:01 -0700 |
commit | 448e3700a0eb5acff5e52882b7941e0cfee6c5f3 (patch) | |
tree | 559c610756c70f4c3a29c3d4a7472be23d8eaaba /git-send-email.perl | |
parent | 78ed88d80a8cc9e2388ebe7631d71253e1d55aab (diff) | |
parent | 51bbccfd1b4a9e2807413022c56ab05c835164fb (diff) | |
download | git-448e3700a0eb5acff5e52882b7941e0cfee6c5f3.tar.gz git-448e3700a0eb5acff5e52882b7941e0cfee6c5f3.tar.xz |
Merge branch 'jc/send-email-reconfirm' into maint
* jc/send-email-reconfirm:
send-email: validate & reconfirm interactive responses
Diffstat (limited to 'git-send-email.perl')
-rwxr-xr-x | git-send-email.perl | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/git-send-email.perl b/git-send-email.perl index 664713709..607137b9a 100755 --- a/git-send-email.perl +++ b/git-send-email.perl @@ -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*<?//; |