send-email: 'References:' should only reference what is sent
If someone responded with a negative (n|no) to the confirmation, then the Message-ID of the discarded email is no longer used in the References: header of subsequent emails. Consequently, send_message() now returns 1 if the message was sent and 0 otherwise. Signed-off-by: Michael Witten <mfwitten@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
40e6e8a0c4
commit
15da108431
@ -796,6 +796,10 @@ sub sanitize_address
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Returns 1 if the message was sent, and 0 otherwise.
|
||||||
|
# In actuality, the whole program dies when a there
|
||||||
|
# is an error sending a message.
|
||||||
|
|
||||||
sub send_message
|
sub send_message
|
||||||
{
|
{
|
||||||
my @recipients = unique_email_list(@to);
|
my @recipients = unique_email_list(@to);
|
||||||
@ -864,7 +868,7 @@ X-Mailer: git-send-email $gitversion
|
|||||||
default => $ask_default);
|
default => $ask_default);
|
||||||
die "Send this email reply required" unless defined $_;
|
die "Send this email reply required" unless defined $_;
|
||||||
if (/^n/i) {
|
if (/^n/i) {
|
||||||
return;
|
return 0;
|
||||||
} elsif (/^q/i) {
|
} elsif (/^q/i) {
|
||||||
cleanup_compose_files();
|
cleanup_compose_files();
|
||||||
exit(0);
|
exit(0);
|
||||||
@ -945,7 +949,7 @@ X-Mailer: git-send-email $gitversion
|
|||||||
$smtp->data or die $smtp->message;
|
$smtp->data or die $smtp->message;
|
||||||
$smtp->datasend("$header\n$message") or die $smtp->message;
|
$smtp->datasend("$header\n$message") or die $smtp->message;
|
||||||
$smtp->dataend() or die $smtp->message;
|
$smtp->dataend() or die $smtp->message;
|
||||||
$smtp->ok or die "Failed to send $subject\n".$smtp->message;
|
$smtp->code =~ /250|200/ or die "Failed to send $subject\n".$smtp->message;
|
||||||
}
|
}
|
||||||
if ($quiet) {
|
if ($quiet) {
|
||||||
printf (($dry_run ? "Dry-" : "")."Sent %s\n", $subject);
|
printf (($dry_run ? "Dry-" : "")."Sent %s\n", $subject);
|
||||||
@ -966,6 +970,8 @@ X-Mailer: git-send-email $gitversion
|
|||||||
print "Result: OK\n";
|
print "Result: OK\n";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
$reply_to = $initial_reply_to;
|
$reply_to = $initial_reply_to;
|
||||||
@ -1126,10 +1132,10 @@ foreach my $t (@files) {
|
|||||||
|
|
||||||
@cc = (@initial_cc, @cc);
|
@cc = (@initial_cc, @cc);
|
||||||
|
|
||||||
send_message();
|
my $message_was_sent = send_message();
|
||||||
|
|
||||||
# set up for the next message
|
# set up for the next message
|
||||||
if ($chain_reply_to || !defined $reply_to || length($reply_to) == 0) {
|
if ($message_was_sent and $chain_reply_to || not defined $reply_to || length($reply_to) == 0) {
|
||||||
$reply_to = $message_id;
|
$reply_to = $message_id;
|
||||||
if (length $references > 0) {
|
if (length $references > 0) {
|
||||||
$references .= "\n $message_id";
|
$references .= "\n $message_id";
|
||||||
|
Loading…
Reference in New Issue
Block a user