git-send-email: do not drop custom headers the user prepared
authorJunio C Hamano <junkio@cox.net>
Thu, 5 Oct 2006 23:36:49 +0000 (16:36 -0700)
committerJunio C Hamano <junkio@cox.net>
Fri, 6 Oct 2006 06:13:26 +0000 (23:13 -0700)
The command picked up only Subject, CC, and From headers in the
incoming mbox text.  Sending out patches prepared by
git-format-patch with user's custom headers was impossible with
that.

Just keep the ones it does not need to look at and add them to
the header of the message when sending it out.

Signed-off-by: Junio C Hamano <junkio@cox.net>
git-send-email.perl

index 3f50abaeb6901772b22e6ca2c1e87b4bd92f3b92..2fd5e87934edba0c17d657fe0878c8a380202328 100755 (executable)
@@ -83,7 +83,7 @@ sub cleanup_compose_files();
 my $compose_filename = ".msg.$$";
 
 # Variables we fill in automatically, or via prompting:
-my (@to,@cc,@initial_cc,@bcclist,
+my (@to,@cc,@initial_cc,@bcclist,@xh,
        $initial_reply_to,$initial_subject,@files,$from,$compose,$time);
 
 # Behavior modification variables
@@ -422,6 +422,9 @@ X-Mailer: git-send-email $gitversion
                $header .= "In-Reply-To: $reply_to\n";
                $header .= "References: $references\n";
        }
+       if (@xh) {
+               $header .= join("\n", @xh) . "\n";
+       }
 
        if ($smtp_server =~ m#^/#) {
                my $pid = open my $sm, '|-';
@@ -472,6 +475,7 @@ foreach my $t (@files) {
 
        my $author_not_sender = undef;
        @cc = @initial_cc;
+       @xh = ();
        my $found_mbox = 0;
        my $header_done = 0;
        $message = "";
@@ -495,6 +499,9 @@ foreach my $t (@files) {
                                                $2, $_) unless $quiet;
                                        push @cc, $2;
                                }
+                               elsif (/^[-A-Za-z]+:\s+\S/) {
+                                       push @xh, $_;
+                               }
 
                        } else {
                                # In the traditional