send-email: fix nasty bug in ask() function
Commit 6e18251
(send-email: refactor and ensure prompting doesn't loop
forever) introduced an ask function, which unfortunately had a nasty
bug. This caused it not to accept anything but the default reply to the
"Who should the emails appear to be from?" prompt, and nothing but
ctrl-d to the "Who should the emails be sent to?" and "Message-ID to be
used as In-Reply-To for the first email?" prompts.
This commit corrects the issues and adds a test to confirm the fix.
Signed-off-by: Jay Soffian <jaysoffian@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
e96f3689ec
commit
0da43a685a
@ -608,7 +608,7 @@ EOT
|
||||
|
||||
sub ask {
|
||||
my ($prompt, %arg) = @_;
|
||||
my $valid_re = $arg{valid_re} || ""; # "" matches anything
|
||||
my $valid_re = $arg{valid_re};
|
||||
my $default = $arg{default};
|
||||
my $resp;
|
||||
my $i = 0;
|
||||
@ -624,7 +624,7 @@ sub ask {
|
||||
if ($resp eq '' and defined $default) {
|
||||
return $default;
|
||||
}
|
||||
if ($resp =~ /$valid_re/) {
|
||||
if (!defined $valid_re or $resp =~ /$valid_re/) {
|
||||
return $resp;
|
||||
}
|
||||
}
|
||||
|
@ -130,6 +130,19 @@ test_expect_success 'Show all headers' '
|
||||
test_cmp expected-show-all-headers actual-show-all-headers
|
||||
'
|
||||
|
||||
test_expect_success 'Prompting works' '
|
||||
clean_fake_sendmail &&
|
||||
(echo "Example <from@example.com>"
|
||||
echo "to@example.com"
|
||||
echo ""
|
||||
) | GIT_SEND_EMAIL_NOTTY=1 git send-email \
|
||||
--smtp-server="$(pwd)/fake.sendmail" \
|
||||
$patches \
|
||||
2>errors &&
|
||||
grep "^From: Example <from@example.com>$" msgtxt1 &&
|
||||
grep "^To: to@example.com$" msgtxt1
|
||||
'
|
||||
|
||||
z8=zzzzzzzz
|
||||
z64=$z8$z8$z8$z8$z8$z8$z8$z8
|
||||
z512=$z64$z64$z64$z64$z64$z64$z64$z64
|
||||
|
Loading…
Reference in New Issue
Block a user