From ae6c098f158dd306462024c5cb137b8f7f65cfbd Mon Sep 17 00:00:00 2001 From: Steven Drake Date: Wed, 17 Feb 2010 12:39:34 +1300 Subject: [PATCH] Add 'git format-patch --to=' option and 'format.to' configuration variable. Has the same functionality as the '--cc' option and 'format.cc' configuration variable but for the "To:" email header. Half of the code to support this was already there. With email the To: header usually more important than the Cc: header. [jc: tests are by Stephen Boyd] Signed-off-by: Steven Drake Signed-off-by: Stephen Boyd Signed-off-by: Junio C Hamano --- Documentation/git-format-patch.txt | 11 ++++++++--- builtin-log.c | 16 ++++++++++++++++ t/t4014-format-patch.sh | 14 ++++++++++++++ 3 files changed, 38 insertions(+), 3 deletions(-) diff --git a/Documentation/git-format-patch.txt b/Documentation/git-format-patch.txt index 9674f9de67..835fb7135b 100644 --- a/Documentation/git-format-patch.txt +++ b/Documentation/git-format-patch.txt @@ -18,7 +18,7 @@ SYNOPSIS [--in-reply-to=Message-Id] [--suffix=.] [--ignore-if-in-upstream] [--subject-prefix=Subject-Prefix] - [--cc=] + [--to=] [--cc=] [--cover-letter] [] [ | ] @@ -162,6 +162,10 @@ will want to ensure that threading is disabled for `git send-email`. allows for useful naming of a patch series, and can be combined with the `--numbered` option. +--to=:: + Add a `To:` header to the email headers. This is in addition + to any configured headers, and may be used multiple times. + --cc=:: Add a `Cc:` header to the email headers. This is in addition to any configured headers, and may be used multiple times. @@ -202,8 +206,8 @@ CONFIGURATION ------------- You can specify extra mail header lines to be added to each message, defaults for the subject prefix and file suffix, number patches when -outputting more than one patch, add "Cc:" headers, configure attachments, -and sign off patches with configuration variables. +outputting more than one patch, add "To" or "Cc:" headers, configure +attachments, and sign off patches with configuration variables. ------------ [format] @@ -211,6 +215,7 @@ and sign off patches with configuration variables. subjectprefix = CHANGE suffix = .txt numbered = auto + to = cc = attach [ = mime-boundary-string ] signoff = true diff --git a/builtin-log.c b/builtin-log.c index 8d16832f7e..5d23a67993 100644 --- a/builtin-log.c +++ b/builtin-log.c @@ -504,6 +504,13 @@ static int git_format_config(const char *var, const char *value, void *cb) } if (!strcmp(var, "format.suffix")) return git_config_string(&fmt_patch_suffix, var, value); + if (!strcmp(var, "format.to")) { + if (!value) + return config_error_nonbool(var); + ALLOC_GROW(extra_to, extra_to_nr + 1, extra_to_alloc); + extra_to[extra_to_nr++] = xstrdup(value); + return 0; + } if (!strcmp(var, "format.cc")) { if (!value) return config_error_nonbool(var); @@ -875,6 +882,13 @@ static int header_callback(const struct option *opt, const char *arg, int unset) return 0; } +static int to_callback(const struct option *opt, const char *arg, int unset) +{ + ALLOC_GROW(extra_to, extra_to_nr + 1, extra_to_alloc); + extra_to[extra_to_nr++] = xstrdup(arg); + return 0; +} + static int cc_callback(const struct option *opt, const char *arg, int unset) { ALLOC_GROW(extra_cc, extra_cc_nr + 1, extra_cc_alloc); @@ -939,6 +953,8 @@ int cmd_format_patch(int argc, const char **argv, const char *prefix) { OPTION_CALLBACK, 0, "add-header", NULL, "header", "add email header", PARSE_OPT_NONEG, header_callback }, + { OPTION_CALLBACK, 0, "to", NULL, "email", "add To: header", + PARSE_OPT_NONEG, to_callback }, { OPTION_CALLBACK, 0, "cc", NULL, "email", "add Cc: header", PARSE_OPT_NONEG, cc_callback }, OPT_STRING(0, "in-reply-to", &in_reply_to, "message-id", diff --git a/t/t4014-format-patch.sh b/t/t4014-format-patch.sh index f2a2aaa2b9..830ddb0cbe 100755 --- a/t/t4014-format-patch.sh +++ b/t/t4014-format-patch.sh @@ -143,6 +143,20 @@ test_expect_success 'configuration headers and command line headers' ' grep "^ *S. E. Cipient \$" patch7 ' +test_expect_success 'command line To: header' ' + + git config --unset-all format.headers && + git format-patch --to="R. E. Cipient " --stdout master..side | sed -e "/^\$/q" >patch8 && + grep "^To: R. E. Cipient \$" patch8 +' + +test_expect_success 'configuration To: header' ' + + git config format.to "R. E. Cipient " && + git format-patch --stdout master..side | sed -e "/^\$/q" >patch9 && + grep "^To: R. E. Cipient \$" patch9 +' + test_expect_success 'multiple files' ' rm -rf patches/ && -- 2.11.4.GIT