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>maint
parent
a2558fb8e1
commit
2c510f21cd
|
@ -493,8 +493,13 @@ my %parse_alias = (
|
||||||
if (/^\s*alias\s+(?:-group\s+\S+\s+)*(\S+)\s+(.*)$/) {
|
if (/^\s*alias\s+(?:-group\s+\S+\s+)*(\S+)\s+(.*)$/) {
|
||||||
my ($alias, $addr) = ($1, $2);
|
my ($alias, $addr) = ($1, $2);
|
||||||
$addr =~ s/#.*$//; # mutt allows # comments
|
$addr =~ s/#.*$//; # mutt allows # comments
|
||||||
# commas delimit multiple addresses
|
# commas delimit multiple addresses
|
||||||
$aliases{$alias} = [ split_addrs($addr) ];
|
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>) {
|
mailrc => sub { my $fh = shift; while (<$fh>) {
|
||||||
if (/^alias\s+(\S+)\s+(.*)$/) {
|
if (/^alias\s+(\S+)\s+(.*)$/) {
|
||||||
|
|
|
@ -1521,6 +1521,21 @@ test_expect_success $PREREQ 'cccover adds Cc to all mail' '
|
||||||
test_cover_addresses "Cc"
|
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' '
|
test_expect_success $PREREQ 'sendemail.aliasfiletype=mailrc' '
|
||||||
clean_fake_sendmail &&
|
clean_fake_sendmail &&
|
||||||
echo "alias sbd somebody@example.org" >.mailrc &&
|
echo "alias sbd somebody@example.org" >.mailrc &&
|
||||||
|
|
Loading…
Reference in New Issue