Re: [PATCH] send-email: avoid duplicate In-Reply-To/References

2018-04-18 Thread Stefan Agner
On 18.04.2018 02:54, Eric Wong wrote:
> Stefan Agner  wrote:
>> This addresses the issue reported here:
>> https://public-inbox.org/git/997160314bbafb3088a401f1c09cc...@agner.ch/
> 
> Thanks for bringing this up.
> 
>> --- a/git-send-email.perl
>> +++ b/git-send-email.perl
>> @@ -1642,10 +1642,15 @@ foreach my $t (@files) {
>>  elsif (/^Content-Transfer-Encoding: (.*)/i) {
>>  $xfer_encoding = $1 if not defined 
>> $xfer_encoding;
>>  }
>> +elsif (/^In-Reply-To: (.*)/i) {
>> +$in_reply_to = $1;
>> +}
>> +elsif (/^References: (.*)/i) {
>> +$references = $1;
>> +}
> 
> References: can span multiple lines with --thread=deep in format-patch
> (technically any header can be, but References: is common)

I think that is ok because we do
# First unfold multiline header fields

...

A quick test with 3 patches in --thread=deep mode looks good:
In-Reply-To:
<87d48c04aae0594ebea7567827d08979ad346380.1524034203.git.ste...@agner.ch>
References:
<06ea66574abfb2dd66adee9996e5fb66903b95a3.1524034203.git.ste...@agner.ch>
<87d48c04aae0594ebea7567827d08979ad346380.1524034203.git.ste...@agner.ch>

--
Stefan


Re: [PATCH] send-email: avoid duplicate In-Reply-To/References

2018-04-17 Thread Eric Wong
Stefan Agner  wrote:
> This addresses the issue reported here:
> https://public-inbox.org/git/997160314bbafb3088a401f1c09cc...@agner.ch/

Thanks for bringing this up.

> --- a/git-send-email.perl
> +++ b/git-send-email.perl
> @@ -1642,10 +1642,15 @@ foreach my $t (@files) {
>   elsif (/^Content-Transfer-Encoding: (.*)/i) {
>   $xfer_encoding = $1 if not defined 
> $xfer_encoding;
>   }
> + elsif (/^In-Reply-To: (.*)/i) {
> + $in_reply_to = $1;
> + }
> + elsif (/^References: (.*)/i) {
> + $references = $1;
> + }

References: can span multiple lines with --thread=deep in format-patch
(technically any header can be, but References: is common)


[PATCH] send-email: avoid duplicate In-Reply-To/References

2018-04-17 Thread Stefan Agner
In case a patch already has In-Reply-To or References in the header
(e.g. when the patch has been created with format-patch --thread)
git-send-email should not add another pair of those headers.
This is also not allowed according to RFC 5322 Section 3.6:
https://tools.ietf.org/html/rfc5322#section-3.6

Avoid the second pair by reading the current headers into the
appropriate variables.

Signed-off-by: Stefan Agner 
---
This addresses the issue reported here:
https://public-inbox.org/git/997160314bbafb3088a401f1c09cc...@agner.ch/

 git-send-email.perl | 7 ++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/git-send-email.perl b/git-send-email.perl
index 2fa7818ca..7157397fd 100755
--- a/git-send-email.perl
+++ b/git-send-email.perl
@@ -1642,10 +1642,15 @@ foreach my $t (@files) {
elsif (/^Content-Transfer-Encoding: (.*)/i) {
$xfer_encoding = $1 if not defined 
$xfer_encoding;
}
+   elsif (/^In-Reply-To: (.*)/i) {
+   $in_reply_to = $1;
+   }
+   elsif (/^References: (.*)/i) {
+   $references = $1;
+   }
elsif (!/^Date:\s/i && /^[-A-Za-z]+:\s+\S/) {
push @xh, $_;
}
-
} else {
# In the traditional
# "send lots of email" format,
-- 
2.17.0