This format is more simple than the other alias file formats, so it may be preferred by some users. The format is as follows. <alias>: <address|alias>[, <address|alias>...] Aliases are specified one per line. There is no line splitting. Example: alice: Alice W Land <awol@xxxxxxxxxxx> bob: Robert Bobbyton <bob@xxxxxxxxxxx> chloe: chloe@xxxxxxxxxxx abgroup: alice, bob bcgrp: bob, chloe, Other <o@xxxxxxxxxxx> Signed-off-by: Allen Hubbe <allenbh@xxxxxxxxx> --- Notes: The v1 of this patch had the following subject line: git-send-email.perl: Add sendmail aliases support This v2 renames this email alias format to simple, because the syntax that is actually supported by the parser differs from the format used by sendmail. Now, there is no mention of sendmail in the name of the format, the documentation, or the commit message. This v2 also adds a test case to t/t9001-send-email.sh, and updates the list of alias file types in Documentation/git-send-email.txt. Documentation/git-send-email.txt | 2 +- git-send-email.perl | 6 +++++- t/t9001-send-email.sh | 24 ++++++++++++++++++++++++ 3 files changed, 30 insertions(+), 2 deletions(-) diff --git a/Documentation/git-send-email.txt b/Documentation/git-send-email.txt index 804554609def..99583c4f8969 100644 --- a/Documentation/git-send-email.txt +++ b/Documentation/git-send-email.txt @@ -383,7 +383,7 @@ sendemail.aliasesFile:: sendemail.aliasFileType:: Format of the file(s) specified in sendemail.aliasesFile. Must be - one of 'mutt', 'mailrc', 'pine', 'elm', or 'gnus'. + one of 'mutt', 'mailrc', 'pine', 'elm', 'gnus', or 'simple'. sendemail.multiEdit:: If true (default), a single editor instance will be spawned to edit diff --git a/git-send-email.perl b/git-send-email.perl index e1e9b1460ced..25d72e8db8bf 100755 --- a/git-send-email.perl +++ b/git-send-email.perl @@ -515,7 +515,11 @@ my %parse_alias = ( $aliases{$alias} = [ split_addrs($addr) ]; } } }, - + simple => sub { my $fh = shift; while (<$fh>) { + if (/^\s*(\S+)\s*:\s*(.+)$/) { + my ($alias, $addr) = ($1, $2); + $aliases{$alias} = [ split_addrs($addr) ]; + }}}, gnus => sub { my $fh = shift; while (<$fh>) { if (/\(define-mail-alias\s+"(\S+?)"\s+"(\S+?)"\)/) { $aliases{$1} = [ $2 ]; diff --git a/t/t9001-send-email.sh b/t/t9001-send-email.sh index 7be14a4e37f7..bbb73cdf8bec 100755 --- a/t/t9001-send-email.sh +++ b/t/t9001-send-email.sh @@ -1548,6 +1548,30 @@ test_expect_success $PREREQ 'sendemail.aliasfile=~/.mailrc' ' 2>errors >out && grep "^!someone@example\.org!$" commandline1 ' +test_expect_success $PREREQ 'sendemail.aliasfiletype=simple' ' + clean_fake_sendmail && rm -fr outdir && + git format-patch -1 -o outdir && + { + echo "alice: Alice W Land <awol@xxxxxxxxxxx>" + echo "bob: Robert Bobbyton <bob@xxxxxxxxxxx>" + echo "chloe: chloe@xxxxxxxxxxx" + echo "abgroup: alice, bob" + echo "bcgrp: bob, chloe, Other <o@xxxxxxxxxxx>" + } >~/.tmp-email-aliases && + git config --replace-all sendemail.aliasesfile \ + "$(pwd)/.tmp-email-aliases" && + git config sendemail.aliasfiletype simple && + git send-email \ + --from="Example <nobody@xxxxxxxxxxx>" \ + --to=alice --to=bcgrp \ + --smtp-server="$(pwd)/fake.sendmail" \ + outdir/0001-*.patch \ + 2>errors >out && + grep "^!awol@example\.com!$" commandline1 && + grep "^!bob@example\.com!$" commandline1 && + grep "^!chloe@example\.com!$" commandline1 && + grep "^!o@example\.com!$" commandline1 +' do_xmailer_test () { expected=$1 params=$2 && -- 2.3.4 -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html