git-send-email: do not double-escape quotes from mutt
mutt saves aliases with escaped quotes in the form of: alias dot \"Dot U. Sir\" <somebody@example.org> When we pass through our sanitize_address routine, we end up with double-escaping: To: "\\\"Dot U. Sir\\\" <somebody@example.org> Remove the escaping in mutt only for now, as I am not sure if other mailers can do this or if this is better fixed in sanitize_address. Cc: Remi Lespinet <remi.lespinet@ensimag.grenoble-inp.fr> Cc: Matthieu Moy <Matthieu.Moy@imag.fr> Signed-off-by: Eric Wong <normalperson@yhbt.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
a2558fb8e1
commit
2c510f21cd
@ -493,8 +493,13 @@ my %parse_alias = (
|
||||
if (/^\s*alias\s+(?:-group\s+\S+\s+)*(\S+)\s+(.*)$/) {
|
||||
my ($alias, $addr) = ($1, $2);
|
||||
$addr =~ s/#.*$//; # mutt allows # comments
|
||||
# commas delimit multiple addresses
|
||||
$aliases{$alias} = [ split_addrs($addr) ];
|
||||
# commas delimit multiple addresses
|
||||
my @addr = split_addrs($addr);
|
||||
|
||||
# quotes may be escaped in the file,
|
||||
# unescape them so we do not double-escape them later.
|
||||
s/\\"/"/g foreach @addr;
|
||||
$aliases{$alias} = \@addr
|
||||
}}},
|
||||
mailrc => sub { my $fh = shift; while (<$fh>) {
|
||||
if (/^alias\s+(\S+)\s+(.*)$/) {
|
||||
|
@ -1521,6 +1521,21 @@ test_expect_success $PREREQ 'cccover adds Cc to all mail' '
|
||||
test_cover_addresses "Cc"
|
||||
'
|
||||
|
||||
test_expect_success $PREREQ 'escaped quotes in sendemail.aliasfiletype=mutt' '
|
||||
clean_fake_sendmail &&
|
||||
echo "alias sbd \\\"Dot U. Sir\\\" <somebody@example.org>" >.mutt &&
|
||||
git config --replace-all sendemail.aliasesfile "$(pwd)/.mutt" &&
|
||||
git config sendemail.aliasfiletype mutt &&
|
||||
git send-email \
|
||||
--from="Example <nobody@example.com>" \
|
||||
--to=sbd \
|
||||
--smtp-server="$(pwd)/fake.sendmail" \
|
||||
outdir/0001-*.patch \
|
||||
2>errors >out &&
|
||||
grep "^!somebody@example\.org!$" commandline1 &&
|
||||
grep -F "To: \"Dot U. Sir\" <somebody@example.org>" out
|
||||
'
|
||||
|
||||
test_expect_success $PREREQ 'sendemail.aliasfiletype=mailrc' '
|
||||
clean_fake_sendmail &&
|
||||
echo "alias sbd somebody@example.org" >.mailrc &&
|
||||
|
Loading…
Reference in New Issue
Block a user