зеркало из https://github.com/microsoft/git.git
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
This commit is contained in:
Коммит
63aeeba993
|
@ -524,8 +524,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+(.*)$/) {
|
||||
|
|
|
@ -1527,6 +1527,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 &&
|
||||
|
|
Загрузка…
Ссылка в новой задаче