send-email: fix In-Reply-To regression
Fix a regression introduced by
1ca3d6e
(send-email: squelch warning due to comparing undefined $_ to "")
where if the user was prompted for an initial In-Reply-To and didn't
provide one, messages would be sent out with an invalid In-Reply-To of
"<>"
Also add test cases for the regression and the fix. A small modification
was needed to allow send-email to take its replies from stdin if the
environment variable GIT_SEND_EMAIL_NOTTY is set.
Signed-off-by: Jay Soffian <jaysoffian@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
12f0a5ea7d
commit
6ecbc851fb
@ -166,7 +166,9 @@ my $envelope_sender;
|
|||||||
|
|
||||||
my $repo = Git->repository();
|
my $repo = Git->repository();
|
||||||
my $term = eval {
|
my $term = eval {
|
||||||
new Term::ReadLine 'git-send-email';
|
$ENV{"GIT_SEND_EMAIL_NOTTY"}
|
||||||
|
? new Term::ReadLine 'git-send-email', \*STDIN, \*STDOUT
|
||||||
|
: new Term::ReadLine 'git-send-email';
|
||||||
};
|
};
|
||||||
if ($@) {
|
if ($@) {
|
||||||
$term = new FakeTerm "$@: going non-interactive";
|
$term = new FakeTerm "$@: going non-interactive";
|
||||||
@ -407,8 +409,9 @@ if ($thread && !defined $initial_reply_to && $prompting) {
|
|||||||
$initial_reply_to = $_;
|
$initial_reply_to = $_;
|
||||||
}
|
}
|
||||||
if (defined $initial_reply_to) {
|
if (defined $initial_reply_to) {
|
||||||
$initial_reply_to =~ s/^\s*<?/</;
|
$initial_reply_to =~ s/^\s*<?//;
|
||||||
$initial_reply_to =~ s/>?\s*$/>/;
|
$initial_reply_to =~ s/>?\s*$//;
|
||||||
|
$initial_reply_to = "<$initial_reply_to>" if $initial_reply_to ne '';
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!defined $smtp_server) {
|
if (!defined $smtp_server) {
|
||||||
|
@ -108,4 +108,25 @@ test_expect_success 'allow long lines with --no-validate' '
|
|||||||
2>errors
|
2>errors
|
||||||
'
|
'
|
||||||
|
|
||||||
|
test_expect_success 'Invalid In-Reply-To' '
|
||||||
|
git send-email \
|
||||||
|
--from="Example <nobody@example.com>" \
|
||||||
|
--to=nobody@example.com \
|
||||||
|
--in-reply-to=" " \
|
||||||
|
--smtp-server="$(pwd)/fake.sendmail" \
|
||||||
|
$patches
|
||||||
|
2>errors
|
||||||
|
! grep "^In-Reply-To: < *>" msgtxt
|
||||||
|
'
|
||||||
|
|
||||||
|
test_expect_success 'Valid In-Reply-To when prompting' '
|
||||||
|
(echo "From Example <from@example.com>"
|
||||||
|
echo "To Example <to@example.com>"
|
||||||
|
echo ""
|
||||||
|
) | env GIT_SEND_EMAIL_NOTTY=1 git send-email \
|
||||||
|
--smtp-server="$(pwd)/fake.sendmail" \
|
||||||
|
$patches 2>errors &&
|
||||||
|
! grep "^In-Reply-To: < *>" msgtxt
|
||||||
|
'
|
||||||
|
|
||||||
test_done
|
test_done
|
||||||
|
Loading…
Reference in New Issue
Block a user