Browse Source

send-email: consider quote as delimiter instead of character

Do not consider quote inside a recipient name as character when
they are not escaped. This interprets:

  "Jane" "Doe" <jdoe@example.com>

as:

  "Jane Doe" <jdoe@example.com>

instead of:

  "Jane\" \"Doe" <jdoe@example.com>

Signed-off-by: Remi Lespinet <remi.lespinet@ensimag.grenoble-inp.fr>
Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
maint
Remi Lespinet 10 years ago committed by Junio C Hamano
parent
commit
1fe9703f08
  1. 6
      git-send-email.perl

6
git-send-email.perl

@ -1003,15 +1003,17 @@ sub sanitize_address { @@ -1003,15 +1003,17 @@ sub sanitize_address {
return $recipient;
}

# remove non-escaped quotes
$recipient_name =~ s/(^|[^\\])"/$1/g;

# rfc2047 is needed if a non-ascii char is included
if ($recipient_name =~ /[^[:ascii:]]/) {
$recipient_name =~ s/^"(.*)"$/$1/;
$recipient_name = quote_rfc2047($recipient_name);
}

# double quotes are needed if specials or CTLs are included
elsif ($recipient_name =~ /[][()<>@,;:\\".\000-\037\177]/) {
$recipient_name =~ s/(["\\\r])/\\$1/g;
$recipient_name =~ s/([\\\r])/\\$1/g;
$recipient_name = qq["$recipient_name"];
}


Loading…
Cancel
Save