{"thread":{"id":"39575","subject":"[PATCH 0/7] changes from last version","startedAt":"2015-06-09T17:56:20Z","lastAt":"2015-06-10T15:18:27Z","messageCount":8,"participants":["Remi Lespinet","Matthieu Moy","Junio C Hamano"],"isPatch":true,"patchVersion":1,"patchTotal":7},"messages":[{"id":"263384","messageId":"1433872587-15515-1-git-send-email-remi.lespinet@ensimag.grenoble-inp.fr","threadId":"39575","inReplyTo":null,"subject":"[PATCH 0/7] changes from last version","fromName":"Remi Lespinet","fromEmail":"remi.lespinet@ensimag.grenoble-inp.fr","sentAt":"2015-06-09T17:56:20Z","receivedAt":"2015-06-09T17:56:20Z","isPatch":true,"sender":{"key":"remi.lespinet@ensimag.grenoble-inp.fr","avatar":"https://avatars.githubusercontent.com/u/11941160?v=4"},"body":"CHANGES (since last submitted version)\n\n1/7 : identical to previous 1/5\n2/7 : identical to previous 2/5\n3/7 : identical to previous 3/5\n4/7 : Modification previously done by 5/5 (refactoring address process)\n5/7 : identical modulo a minor change at hunk @@ -1023,8 +1009,13 @@\n       in the function process_address_list due to 4/7\n6/7 : new commit\n7/7 : new commit\n\nCONFLICT (if merging to pu)\n\nThere will be a trivial conflict if merging to pu (with 514554cf,\n3169e06d and 6be02640 from Eric Sunshine and Allen Hubbe patch series).\nSuppressing conflict marks resolve it.\n"},{"id":"263385","messageId":"1433872587-15515-2-git-send-email-remi.lespinet@ensimag.grenoble-inp.fr","threadId":"39575","inReplyTo":"1433872587-15515-1-git-send-email-remi.lespinet@ensimag.grenoble-inp.fr","subject":"[PATCH v3 1/7] t9001-send-email: move script creation in a setup test","fromName":"Remi Lespinet","fromEmail":"remi.lespinet@ensimag.grenoble-inp.fr","sentAt":"2015-06-09T17:56:21Z","receivedAt":"2015-06-09T17:56:21Z","isPatch":true,"sender":{"key":"remi.lespinet@ensimag.grenoble-inp.fr","avatar":"https://avatars.githubusercontent.com/u/11941160?v=4"},"body":"Move the creation of the scripts used in to-cmd and cc-cmd tests\nin a setup test to make them available for later tests.\n\nThis will be used in the next commit.\n\nSigned-off-by: Remi Lespinet <remi.lespinet@ensimag.grenoble-inp.fr>\n---\n t/t9001-send-email.sh | 15 +++++++++------\n 1 file changed, 9 insertions(+), 6 deletions(-)\n\ndiff --git a/t/t9001-send-email.sh b/t/t9001-send-email.sh\nindex 7be14a4..e63fc83 100755\n--- a/t/t9001-send-email.sh\n+++ b/t/t9001-send-email.sh\n@@ -312,13 +312,19 @@ test_expect_success $PREREQ,!AUTOIDENT 'broken implicit ident aborts send-email'\n \t)\n '\n \n+test_expect_success $PREREQ 'setup tocmd and cccmd scripts' '\n+\twrite_script tocmd-sed <<-\\EOF &&\n+\tsed -n -e \"s/^tocmd--//p\" \"$1\"\n+\tEOF\n+\twrite_script cccmd-sed <<-\\EOF\n+\tsed -n -e \"s/^cccmd--//p\" \"$1\"\n+\tEOF\n+'\n+\n test_expect_success $PREREQ 'tocmd works' '\n \tclean_fake_sendmail &&\n \tcp $patches tocmd.patch &&\n \techo tocmd--tocmd@example.com >>tocmd.patch &&\n-\twrite_script tocmd-sed <<-\\EOF &&\n-\tsed -n -e \"s/^tocmd--//p\" \"$1\"\n-\tEOF\n \tgit send-email \\\n \t\t--from=\"Example <nobody@example.com>\" \\\n \t\t--to-cmd=./tocmd-sed \\\n@@ -332,9 +338,6 @@ test_expect_success $PREREQ 'cccmd works' '\n \tclean_fake_sendmail &&\n \tcp $patches cccmd.patch &&\n \techo \"cccmd--  cccmd@example.com\" >>cccmd.patch &&\n-\twrite_script cccmd-sed <<-\\EOF &&\n-\tsed -n -e \"s/^cccmd--//p\" \"$1\"\n-\tEOF\n \tgit send-email \\\n \t\t--from=\"Example <nobody@example.com>\" \\\n \t\t--to=nobody@example.com \\\n-- \n1.9.1\n"},{"id":"263386","messageId":"1433872587-15515-3-git-send-email-remi.lespinet@ensimag.grenoble-inp.fr","threadId":"39575","inReplyTo":"1433872587-15515-1-git-send-email-remi.lespinet@ensimag.grenoble-inp.fr","subject":"[PATCH v3 2/7] send-email: allow aliases in patch header and command script outputs","fromName":"Remi Lespinet","fromEmail":"remi.lespinet@ensimag.grenoble-inp.fr","sentAt":"2015-06-09T17:56:22Z","receivedAt":"2015-06-09T17:56:22Z","isPatch":true,"sender":{"key":"remi.lespinet@ensimag.grenoble-inp.fr","avatar":"https://avatars.githubusercontent.com/u/11941160?v=4"},"body":"Interpret aliases in:\n\n  -  Header fields of patches generated by git format-patch\n     (using --to, --cc, --add-header for example) or\n     manually modified. Example of fields in header:\n\n      To: alias1\n      Cc: alias2\n      Cc: alias3\n\n  -  Outputs of command scripts specified by --cc-cmd and\n     --to-cmd. Example of script:\n\n      #!/bin/sh\n      echo alias1\n      echo alias2\n\n--\n\nNote that the --from option of git format-patch takes an argument which\nmust be formated as .*<.*> (if not, git format-patch will be aborted with\nfatal: invalid ident line). For this reason, passing an alias as an\nargument of --from is not possible, but modifying the from field in\nthe patch manually is.\n\nSigned-off-by: Remi Lespinet <remi.lespinet@ensimag.grenoble-inp.fr>\n---\n git-send-email.perl   |  2 ++\n t/t9001-send-email.sh | 60 +++++++++++++++++++++++++++++++++++++++++++++++++++\n 2 files changed, 62 insertions(+)\n\ndiff --git a/git-send-email.perl b/git-send-email.perl\nindex e1e9b14..0cac4b0 100755\n--- a/git-send-email.perl\n+++ b/git-send-email.perl\n@@ -1535,7 +1535,9 @@ foreach my $t (@files) {\n \t\t($confirm =~ /^(?:auto|compose)$/ && $compose && $message_num == 1));\n \t$needs_confirm = \"inform\" if ($needs_confirm && $confirm_unconfigured && @cc);\n \n+\t@to = expand_aliases(@to);\n \t@to = validate_address_list(sanitize_address_list(@to));\n+\t@cc = expand_aliases(@cc);\n \t@cc = validate_address_list(sanitize_address_list(@cc));\n \n \t@to = (@initial_to, @to);\ndiff --git a/t/t9001-send-email.sh b/t/t9001-send-email.sh\nindex e63fc83..062c703 100755\n--- a/t/t9001-send-email.sh\n+++ b/t/t9001-send-email.sh\n@@ -1552,6 +1552,66 @@ test_expect_success $PREREQ 'sendemail.aliasfile=~/.mailrc' '\n \tgrep \"^!someone@example\\.org!$\" commandline1\n '\n \n+test_expect_success $PREREQ 'alias support in To header' '\n+\tclean_fake_sendmail &&\n+\techo \"alias sbd  someone@example.org\" >.mailrc &&\n+\ttest_config sendemail.aliasesfile \".mailrc\" &&\n+\ttest_config sendemail.aliasfiletype mailrc &&\n+\tgit format-patch --stdout -1 --to=sbd >aliased.patch &&\n+\tgit send-email \\\n+\t\t--from=\"Example <nobody@example.com>\" \\\n+\t\t--smtp-server=\"$(pwd)/fake.sendmail\" \\\n+\t\taliased.patch \\\n+\t\t2>errors >out &&\n+\tgrep \"^!someone@example\\.org!$\" commandline1\n+'\n+\n+test_expect_success $PREREQ 'alias support in Cc header' '\n+\tclean_fake_sendmail &&\n+\techo \"alias sbd  someone@example.org\" >.mailrc &&\n+\ttest_config sendemail.aliasesfile \".mailrc\" &&\n+\ttest_config sendemail.aliasfiletype mailrc &&\n+\tgit format-patch --stdout -1 --cc=sbd >aliased.patch &&\n+\tgit send-email \\\n+\t\t--from=\"Example <nobody@example.com>\" \\\n+\t\t--smtp-server=\"$(pwd)/fake.sendmail\" \\\n+\t\taliased.patch \\\n+\t\t2>errors >out &&\n+\tgrep \"^!someone@example\\.org!$\" commandline1\n+'\n+\n+test_expect_success $PREREQ 'tocmd works with aliases' '\n+\tclean_fake_sendmail &&\n+\techo \"alias sbd  someone@example.org\" >.mailrc &&\n+\ttest_config sendemail.aliasesfile \".mailrc\" &&\n+\ttest_config sendemail.aliasfiletype mailrc &&\n+\tgit format-patch --stdout -1 >tocmd.patch &&\n+\techo tocmd--sbd >>tocmd.patch &&\n+\tgit send-email \\\n+\t\t--from=\"Example <nobody@example.com>\" \\\n+\t\t--to-cmd=./tocmd-sed \\\n+\t\t--smtp-server=\"$(pwd)/fake.sendmail\" \\\n+\t\ttocmd.patch \\\n+\t\t2>errors >out &&\n+\tgrep \"^!someone@example\\.org!$\" commandline1\n+'\n+\n+test_expect_success $PREREQ 'cccmd works with aliases' '\n+\tclean_fake_sendmail &&\n+\techo \"alias sbd  someone@example.org\" >.mailrc &&\n+\ttest_config sendemail.aliasesfile \".mailrc\" &&\n+\ttest_config sendemail.aliasfiletype mailrc &&\n+\tgit format-patch --stdout -1 >cccmd.patch &&\n+\techo cccmd--sbd >>cccmd.patch &&\n+\tgit send-email \\\n+\t\t--from=\"Example <nobody@example.com>\" \\\n+\t\t--cc-cmd=./cccmd-sed \\\n+\t\t--smtp-server=\"$(pwd)/fake.sendmail\" \\\n+\t\tcccmd.patch \\\n+\t\t2>errors >out &&\n+\tgrep \"^!someone@example\\.org!$\" commandline1\n+'\n+\n do_xmailer_test () {\n \texpected=$1 params=$2 &&\n \tgit format-patch -1 &&\n-- \n1.9.1\n"},{"id":"263387","messageId":"1433872587-15515-4-git-send-email-remi.lespinet@ensimag.grenoble-inp.fr","threadId":"39575","inReplyTo":"1433872587-15515-1-git-send-email-remi.lespinet@ensimag.grenoble-inp.fr","subject":"[PATCH v3 3/7] t9001-send-email: refactor header variable fields replacement","fromName":"Remi Lespinet","fromEmail":"remi.lespinet@ensimag.grenoble-inp.fr","sentAt":"2015-06-09T17:56:23Z","receivedAt":"2015-06-09T17:56:23Z","isPatch":true,"sender":{"key":"remi.lespinet@ensimag.grenoble-inp.fr","avatar":"https://avatars.githubusercontent.com/u/11941160?v=4"},"body":"Create a function which replaces Date, Message-Id and\nX-Mailer lines generated by git-send-email by a specific string\n\nDate:.*$       -> Date: DATE-STRING\nMessage-Id:.*$ -> Message-Id: MESSAGE-ID-STRING\nX-Mailer:.*$   -> X-Mailer: X-MAILER-STRING\n\nThis is a preparatory for the next commit.\n\nSigned-off-by: Remi Lespinet <remi.lespinet@ensimag.grenoble-inp.fr>\n---\n t/t9001-send-email.sh | 11 +++++++----\n 1 file changed, 7 insertions(+), 4 deletions(-)\n\ndiff --git a/t/t9001-send-email.sh b/t/t9001-send-email.sh\nindex 062c703..806f066 100755\n--- a/t/t9001-send-email.sh\n+++ b/t/t9001-send-email.sh\n@@ -522,6 +522,12 @@ Result: OK\n EOF\n \"\n \n+replace_variable_fields () {\n+\tsed\t-e \"s/^\\(Date:\\).*/\\1 DATE-STRING/\" \\\n+\t\t-e \"s/^\\(Message-Id:\\).*/\\1 MESSAGE-ID-STRING/\" \\\n+\t\t-e \"s/^\\(X-Mailer:\\).*/\\1 X-MAILER-STRING/\"\n+}\n+\n test_suppression () {\n \tgit send-email \\\n \t\t--dry-run \\\n@@ -529,10 +535,7 @@ test_suppression () {\n \t\t--from=\"Example <from@example.com>\" \\\n \t\t--to=to@example.com \\\n \t\t--smtp-server relay.example.com \\\n-\t\t$patches |\n-\tsed\t-e \"s/^\\(Date:\\).*/\\1 DATE-STRING/\" \\\n-\t\t-e \"s/^\\(Message-Id:\\).*/\\1 MESSAGE-ID-STRING/\" \\\n-\t\t-e \"s/^\\(X-Mailer:\\).*/\\1 X-MAILER-STRING/\" \\\n+\t\t$patches | replace_variable_fields \\\n \t\t>actual-suppress-$1${2+\"-$2\"} &&\n \ttest_cmp expected-suppress-$1${2+\"-$2\"} actual-suppress-$1${2+\"-$2\"}\n }\n-- \n1.9.1\n"},{"id":"263389","messageId":"1433872587-15515-5-git-send-email-remi.lespinet@ensimag.grenoble-inp.fr","threadId":"39575","inReplyTo":"1433872587-15515-1-git-send-email-remi.lespinet@ensimag.grenoble-inp.fr","subject":"[PATCH v3 4/7] send-email: refactor address list process","fromName":"Remi Lespinet","fromEmail":"remi.lespinet@ensimag.grenoble-inp.fr","sentAt":"2015-06-09T17:56:24Z","receivedAt":"2015-06-09T17:56:24Z","isPatch":true,"sender":{"key":"remi.lespinet@ensimag.grenoble-inp.fr","avatar":"https://avatars.githubusercontent.com/u/11941160?v=4"},"body":"Simplify code by creating a funct (comma separated, with aliases ...)\ninto a simple list of valid email addresses.\n\nSigned-off-by: Remi Lespinet <remi.lespinet@ensimag.grenoble-inp.fr>\n---\n git-send-email.perl | 22 ++++++++++++----------\n 1 file changed, 12 insertions(+), 10 deletions(-)\n\ndiff --git a/git-send-email.perl b/git-send-email.perl\nindex 0cac4b0..59dcfe3 100755\n--- a/git-send-email.perl\n+++ b/git-send-email.perl\n@@ -808,12 +808,9 @@ sub expand_one_alias {\n \treturn $aliases{$alias} ? expand_aliases(@{$aliases{$alias}}) : $alias;\n }\n \n-@initial_to = expand_aliases(@initial_to);\n-@initial_to = validate_address_list(sanitize_address_list(@initial_to));\n-@initial_cc = expand_aliases(@initial_cc);\n-@initial_cc = validate_address_list(sanitize_address_list(@initial_cc));\n-@bcclist = expand_aliases(@bcclist);\n-@bcclist = validate_address_list(sanitize_address_list(@bcclist));\n+@initial_to = process_address_list(@initial_to);\n+@initial_cc = process_address_list(@initial_cc);\n+@bcclist = process_address_list(@bcclist);\n \n if ($thread && !defined $initial_reply_to && $prompting) {\n \t$initial_reply_to = ask(\n@@ -1026,6 +1023,13 @@ sub sanitize_address_list {\n \treturn (map { sanitize_address($_) } @_);\n }\n \n+sub process_address_list {\n+    my @addr_list = expand_aliases(@_);\n+    @addr_list = sanitize_address_list(@addr_list);\n+    @addr_list = validate_address_list(@addr_list);\n+    return @addr_list;\n+}\n+\n # Returns the local Fully Qualified Domain Name (FQDN) if available.\n #\n # Tightly configured MTAa require that a caller sends a real DNS\n@@ -1535,10 +1539,8 @@ foreach my $t (@files) {\n \t\t($confirm =~ /^(?:auto|compose)$/ && $compose && $message_num == 1));\n \t$needs_confirm = \"inform\" if ($needs_confirm && $confirm_unconfigured && @cc);\n \n-\t@to = expand_aliases(@to);\n-\t@to = validate_address_list(sanitize_address_list(@to));\n-\t@cc = expand_aliases(@cc);\n-\t@cc = validate_address_list(sanitize_address_list(@cc));\n+\t@to = process_address_list(@to);\n+\t@cc = process_address_list(@cc);\n \n \t@to = (@initial_to, @to);\n \t@cc = (@initial_cc, @cc);\n-- \n1.9.1\n"},{"id":"263388","messageId":"1433872587-15515-6-git-send-email-remi.lespinet@ensimag.grenoble-inp.fr","threadId":"39575","inReplyTo":"1433872587-15515-1-git-send-email-remi.lespinet@ensimag.grenoble-inp.fr","subject":"[PATCH v3 5/7] send-email: allow multiple emails using --cc, --to and --bcc","fromName":"Remi Lespinet","fromEmail":"remi.lespinet@ensimag.grenoble-inp.fr","sentAt":"2015-06-09T17:56:25Z","receivedAt":"2015-06-09T17:56:25Z","isPatch":true,"sender":{"key":"remi.lespinet@ensimag.grenoble-inp.fr","avatar":"https://avatars.githubusercontent.com/u/11941160?v=4"},"body":"From: Jorge Juan Garcia Garcia <Jorge-Juan.Garcia-Garcia@ensimag.imag.fr>\n\nAccept a list of emails separated by commas in flags --cc, --to and\n--bcc.  Multiple addresses can already be given by using these options\nmultiple times, but it is more convenient to allow cutting-and-pasting\na list of addresses from the header of an existing e-mail message,\nwhich already lists them as comma-separated list, as a value to a\nsingle parameter.\n\nThe following format can now be used:\n\n    $ git send-email --to='Jane <jdoe@example.com>, mike@example.com'\n\nHowever format using commas in names doesn't work:\n\n    $ git send-email --to='\"Jane, Doe\" <jdoe@example.com>'\n\nRemove the limitation imposed by 79ee555b (Check and document the\noptions to prevent mistakes, 2006-06-21) which rejected every argument\nwith comma in --cc, --to and --bcc.\n\nHelped-by: Remi Lespinet <remi.lespinet@ensimag.grenoble-inp.fr>\nSigned-off-by: Mathieu Lienard--Mayor <Mathieu.Lienard--Mayor@ensimag.imag.fr>\nSigned-off-by: Jorge Juan Garcia Garcia <Jorge-Juan.Garcia-Garcia@ensimag.imag.fr>\nSigned-off-by: Matthieu Moy <Matthieu.Moy@grenoble-inp.fr>\nSigned-off-by: Remi Lespinet <remi.lespinet@ensimag.grenoble-inp.fr>\n---\n Documentation/git-send-email.txt | 21 +++++++++++++------\n git-send-email.perl              | 21 ++++++-------------\n t/t9001-send-email.sh            | 44 ++++++++++++++++++++++++++++++++++++++++\n 3 files changed, 65 insertions(+), 21 deletions(-)\n\ndiff --git a/Documentation/git-send-email.txt b/Documentation/git-send-email.txt\nindex 8045546..0146164 100644\n--- a/Documentation/git-send-email.txt\n+++ b/Documentation/git-send-email.txt\n@@ -49,17 +49,23 @@ Composing\n \tof 'sendemail.annotate'. See the CONFIGURATION section for\n \t'sendemail.multiEdit'.\n \n---bcc=<address>::\n+--bcc=<address>,...::\n \tSpecify a \"Bcc:\" value for each email. Default is the value of\n \t'sendemail.bcc'.\n +\n-The --bcc option must be repeated for each user you want on the bcc list.\n+Addresses containing commas (\"Doe, Jane\" <foobar@example.com>) are not\n+currently supported.\n++\n+This option may be specified multiple times.\n \n---cc=<address>::\n+--cc=<address>,...::\n \tSpecify a starting \"Cc:\" value for each email.\n \tDefault is the value of 'sendemail.cc'.\n +\n-The --cc option must be repeated for each user you want on the cc list.\n+Addresses containing commas (\"Doe, Jane\" <foobar@example.com>) are not\n+currently supported.\n++\n+This option may be specified multiple times.\n \n --compose::\n \tInvoke a text editor (see GIT_EDITOR in linkgit:git-var[1])\n@@ -110,13 +116,16 @@ is not set, this will be prompted for.\n \tOnly necessary if --compose is also set.  If --compose\n \tis not set, this will be prompted for.\n \n---to=<address>::\n+--to=<address>,...::\n \tSpecify the primary recipient of the emails generated. Generally, this\n \twill be the upstream maintainer of the project involved. Default is the\n \tvalue of the 'sendemail.to' configuration value; if that is unspecified,\n \tand --to-cmd is not specified, this will be prompted for.\n +\n-The --to option must be repeated for each user you want on the to list.\n+Addresses containing commas (\"Doe, Jane\" <foobar@example.com>) are not\n+currently supported.\n++\n+This option may be specified multiple times.\n \n --8bit-encoding=<encoding>::\n \tWhen encountering a non-ASCII message or subject that does not\ndiff --git a/git-send-email.perl b/git-send-email.perl\nindex 59dcfe3..ea03308 100755\n--- a/git-send-email.perl\n+++ b/git-send-email.perl\n@@ -460,20 +460,6 @@ my ($repoauthor, $repocommitter);\n ($repoauthor) = Git::ident_person(@repo, 'author');\n ($repocommitter) = Git::ident_person(@repo, 'committer');\n \n-# Verify the user input\n-\n-foreach my $entry (@initial_to) {\n-\tdie \"Comma in --to entry: $entry'\\n\" unless $entry !~ m/,/;\n-}\n-\n-foreach my $entry (@initial_cc) {\n-\tdie \"Comma in --cc entry: $entry'\\n\" unless $entry !~ m/,/;\n-}\n-\n-foreach my $entry (@bcclist) {\n-\tdie \"Comma in --bcclist entry: $entry'\\n\" unless $entry !~ m/,/;\n-}\n-\n sub parse_address_line {\n \tif ($have_mail_address) {\n \t\treturn map { $_->format } Mail::Address->parse($_[0]);\n@@ -1023,8 +1009,13 @@ sub sanitize_address_list {\n \treturn (map { sanitize_address($_) } @_);\n }\n \n+sub split_at_commas {\n+\treturn (map { split /\\s*,\\s*/, $_ } @_);\n+}\n+\n sub process_address_list {\n-    my @addr_list = expand_aliases(@_);\n+    my @addr_list = split_at_commas(@_);\n+    @addr_list = expand_aliases(@addr_list);\n     @addr_list = sanitize_address_list(@addr_list);\n     @addr_list = validate_address_list(@addr_list);\n     return @addr_list;\ndiff --git a/t/t9001-send-email.sh b/t/t9001-send-email.sh\nindex 806f066..9aee474 100755\n--- a/t/t9001-send-email.sh\n+++ b/t/t9001-send-email.sh\n@@ -1648,4 +1648,48 @@ test_expect_success $PREREQ '--[no-]xmailer with sendemail.xmailer=false' '\n \tdo_xmailer_test 1 \"--xmailer\"\n '\n \n+test_expect_success $PREREQ 'setup expected-list' '\n+\tgit send-email \\\n+\t--dry-run \\\n+\t--from=\"Example <from@example.com>\" \\\n+\t--to=\"To 1 <to1@example.com>\" \\\n+\t--to=\"to2@example.com\" \\\n+\t--to=\"to3@example.com\" \\\n+\t--cc=\"Cc 1 <cc1@example.com>\" \\\n+\t--cc=\"Cc2 <cc2@example.com>\" \\\n+\t--bcc=\"bcc1@example.com\" \\\n+\t--bcc=\"bcc2@example.com\" \\\n+\t0001-add-master.patch | replace_variable_fields \\\n+\t>expected-list\n+'\n+\n+test_expect_success $PREREQ 'use email list in --cc --to and --bcc' '\n+\tgit send-email \\\n+\t--dry-run \\\n+\t--from=\"Example <from@example.com>\" \\\n+\t--to=\"To 1 <to1@example.com>, to2@example.com\" \\\n+\t--to=\"to3@example.com\" \\\n+\t--cc=\"Cc 1 <cc1@example.com>, Cc2 <cc2@example.com>\" \\\n+\t--bcc=\"bcc1@example.com, bcc2@example.com\" \\\n+\t0001-add-master.patch | replace_variable_fields \\\n+\t>actual-list &&\n+\ttest_cmp expected-list actual-list\n+'\n+\n+test_expect_success $PREREQ 'aliases work with email list' '\n+\techo \"alias to2 to2@example.com\" >.mutt &&\n+\techo \"alias cc1 Cc 1 <cc1@example.com>\" >>.mutt &&\n+\ttest_config sendemail.aliasesfile \".mutt\" &&\n+\ttest_config sendemail.aliasfiletype mutt &&\n+\tgit send-email \\\n+\t--dry-run \\\n+\t--from=\"Example <from@example.com>\" \\\n+\t--to=\"To 1 <to1@example.com>, to2, to3@example.com\" \\\n+\t--cc=\"cc1, Cc2 <cc2@example.com>\" \\\n+\t--bcc=\"bcc1@example.com, bcc2@example.com\" \\\n+\t0001-add-master.patch | replace_variable_fields \\\n+\t>actual-list &&\n+\ttest_cmp expected-list actual-list\n+'\n+\n test_done\n-- \n1.9.1\n"},{"id":"263451","messageId":"vpq1thkasqu.fsf@anie.imag.fr","threadId":"39575","inReplyTo":"1433872587-15515-1-git-send-email-remi.lespinet@ensimag.grenoble-inp.fr","subject":"Re: [PATCH 0/7] changes from last version","fromName":"Matthieu Moy","fromEmail":"matthieu.moy@grenoble-inp.fr","sentAt":"2015-06-10T08:10:33Z","receivedAt":"2015-06-10T08:10:33Z","isPatch":true,"sender":{"key":"matthieu.moy@grenoble-inp.fr","avatar":"https://gravatar.com/avatar/72c8a2705971a25dfaff23cece15130d405685845d911aedd5667ace277f3fc5?d=mp&s=160"},"body":"> Subject: Re: [PATCH 0/7] changes from last version\n\nThis is not a good subject. You want the subject to say what the series\nis about.\n\n-- \nMatthieu Moy\nhttp://www-verimag.imag.fr/~moy/\n"},{"id":"263477","messageId":"xmqq616voam4.fsf@gitster.dls.corp.google.com","threadId":"39575","inReplyTo":"1433872587-15515-6-git-send-email-remi.lespinet@ensimag.grenoble-inp.fr","subject":"Re: [PATCH v3 5/7] send-email: allow multiple emails using --cc, --to and --bcc","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2015-06-10T15:18:27Z","receivedAt":"2015-06-10T15:18:27Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Remi Lespinet <remi.lespinet@ensimag.grenoble-inp.fr> writes:\n\n> From: Jorge Juan Garcia Garcia <Jorge-Juan.Garcia-Garcia@ensimag.imag.fr>\n>\n> Accept a list of emails separated by commas in flags --cc, --to and\n> --bcc.  Multiple addresses can already be given by using these options\n> multiple times, but it is more convenient to allow cutting-and-pasting\n> a list of addresses from the header of an existing e-mail message,\n> which already lists them as comma-separated list, as a value to a\n> single parameter.\n>\n> The following format can now be used:\n>\n>     $ git send-email --to='Jane <jdoe@example.com>, mike@example.com'\n>\n> However format using commas in names doesn't work:\n>\n>     $ git send-email --to='\"Jane, Doe\" <jdoe@example.com>'\n\nThat should be \"Doe, Jane <jdoe@example.com>\", shouldn't it?  When\nwriting \"firstname lastname\", people do not put comma in between.\n"}]}