Skip to content

Commit 63aeeba

Browse files
committed
Merge branch 'ew/send-email-mutt-alias-fix'
"git send-email" was confused by escaped quotes stored in the alias files saved by "mutt", which has been corrected. * ew/send-email-mutt-alias-fix: git-send-email: do not double-escape quotes from mutt
2 parents 7e3e80a + 2c510f2 commit 63aeeba

File tree

2 files changed

+22
-2
lines changed

2 files changed

+22
-2
lines changed

git-send-email.perl

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -524,8 +524,13 @@ sub parse_sendmail_aliases {
524524
if (/^\s*alias\s+(?:-group\s+\S+\s+)*(\S+)\s+(.*)$/) {
525525
my ($alias, $addr) = ($1, $2);
526526
$addr =~ s/#.*$//; # mutt allows # comments
527-
# commas delimit multiple addresses
528-
$aliases{$alias} = [ split_addrs($addr) ];
527+
# commas delimit multiple addresses
528+
my @addr = split_addrs($addr);
529+
530+
# quotes may be escaped in the file,
531+
# unescape them so we do not double-escape them later.
532+
s/\\"/"/g foreach @addr;
533+
$aliases{$alias} = \@addr
529534
}}},
530535
mailrc => sub { my $fh = shift; while (<$fh>) {
531536
if (/^alias\s+(\S+)\s+(.*)$/) {

t/t9001-send-email.sh

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1527,6 +1527,21 @@ test_expect_success $PREREQ 'cccover adds Cc to all mail' '
15271527
test_cover_addresses "Cc"
15281528
'
15291529

1530+
test_expect_success $PREREQ 'escaped quotes in sendemail.aliasfiletype=mutt' '
1531+
clean_fake_sendmail &&
1532+
echo "alias sbd \\\"Dot U. Sir\\\" <[email protected]>" >.mutt &&
1533+
git config --replace-all sendemail.aliasesfile "$(pwd)/.mutt" &&
1534+
git config sendemail.aliasfiletype mutt &&
1535+
git send-email \
1536+
--from="Example <[email protected]>" \
1537+
--to=sbd \
1538+
--smtp-server="$(pwd)/fake.sendmail" \
1539+
outdir/0001-*.patch \
1540+
2>errors >out &&
1541+
grep "^!somebody@example\.org!$" commandline1 &&
1542+
grep -F "To: \"Dot U. Sir\" <[email protected]>" out
1543+
'
1544+
15301545
test_expect_success $PREREQ 'sendemail.aliasfiletype=mailrc' '
15311546
clean_fake_sendmail &&
15321547
echo "alias sbd [email protected]" >.mailrc &&

0 commit comments

Comments
 (0)