diff options
-rw-r--r-- | Documentation/git-send-email.txt | 11 | ||||
-rwxr-xr-x | git-send-email.perl | 16 | ||||
-rwxr-xr-x | t/t9001-send-email.sh | 16 |
3 files changed, 31 insertions, 12 deletions
diff --git a/Documentation/git-send-email.txt b/Documentation/git-send-email.txt index 021276329c..f4d7166275 100644 --- a/Documentation/git-send-email.txt +++ b/Documentation/git-send-email.txt @@ -68,11 +68,12 @@ This option may be specified multiple times. Invoke a text editor (see GIT_EDITOR in linkgit:git-var[1]) to edit an introductory message for the patch series. + -When `--compose` is used, git send-email will use the From, Subject, -Reply-To, and In-Reply-To headers specified in the message. If the body -of the message (what you type after the headers and a blank line) only -contains blank (or Git: prefixed) lines, the summary won't be sent, but -the headers mentioned above will be used unless they are removed. +When `--compose` is used, git send-email will use the From, To, Cc, Bcc, +Subject, Reply-To, and In-Reply-To headers specified in the message. If +the body of the message (what you type after the headers and a blank +line) only contains blank (or Git: prefixed) lines, the summary won't be +sent, but the headers mentioned above will be used unless they are +removed. + Missing From or In-Reply-To headers will be prompted for. + diff --git a/git-send-email.perl b/git-send-email.perl index 2adaa35938..526f2dd712 100755 --- a/git-send-email.perl +++ b/git-send-email.perl @@ -861,6 +861,9 @@ if ($compose) { my $tpl_subject = $initial_subject || ''; my $tpl_in_reply_to = $initial_in_reply_to || ''; my $tpl_reply_to = $reply_to || ''; + my $tpl_to = join(',', @initial_to); + my $tpl_cc = join(',', @initial_cc); + my $tpl_bcc = join(', ', @initial_bcc); print $c <<EOT1, Git::prefix_lines("GIT: ", __(<<EOT2)), <<EOT3; From $tpl_sender # This line is ignored. @@ -872,6 +875,9 @@ for the patch you are writing. Clear the body content if you don't wish to send a summary. EOT2 From: $tpl_sender +To: $tpl_to +Cc: $tpl_cc +Bcc: $tpl_bcc Reply-To: $tpl_reply_to Subject: $tpl_subject In-Reply-To: $tpl_in_reply_to @@ -928,8 +934,14 @@ EOT3 } elsif (/^From:\s*(.+)\s*$/i) { $sender = $1; next; - } elsif (/^(?:To|Cc|Bcc):/i) { - print __("To/Cc/Bcc fields are not interpreted yet, they have been ignored\n"); + } elsif (/^To:\s*(.+)\s*$/i) { + @initial_to = parse_address_line($1); + next; + } elsif (/^Cc:\s*(.+)\s*$/i) { + @initial_cc = parse_address_line($1); + next; + } elsif (/^Bcc:/i) { + @initial_bcc = parse_address_line($1); next; } print $c2 $_; diff --git a/t/t9001-send-email.sh b/t/t9001-send-email.sh index c62f032056..4052b28e73 100755 --- a/t/t9001-send-email.sh +++ b/t/t9001-send-email.sh @@ -2522,7 +2522,7 @@ test_expect_success $PREREQ '--compose handles lowercase headers' ' test_expect_success $PREREQ '--compose handles to headers' ' write_script fake-editor <<-\EOF && - sed "s/^$/To: edited-to@example.com\n/" <"$1" >"$1.tmp" && + sed "s/^To: .*/&, edited-to@example.com/" <"$1" >"$1.tmp" && echo this is the body >>"$1.tmp" && mv "$1.tmp" "$1" EOF @@ -2534,10 +2534,16 @@ test_expect_success $PREREQ '--compose handles to headers' ' --to=nobody@example.com \ --smtp-server="$(pwd)/fake.sendmail" \ HEAD^ && - # Ideally the "to" header we specified would be used, - # but the program explicitly warns that these are - # ignored. For now, just make sure we did not abort. - grep "To:" msgtxt1 + # Check both that the cover letter used our modified "to" line, + # but also that it was picked up for the patch. + q_to_tab >expect <<-\EOF && + To: nobody@example.com, + Qedited-to@example.com + EOF + grep -A1 "^To:" msgtxt1 >msgtxt1.to && + test_cmp expect msgtxt1.to && + grep -A1 "^To:" msgtxt2 >msgtxt2.to && + test_cmp expect msgtxt2.to ' test_done |