Without this patch I'm not able to properly send emails as I have a non-ascii character in my name. The former version tried to fix-up the real name part with double quotes if it includes a '.'. I removed this as rfc2047 can handle a dot, too. Signed-off-by: Uwe Kleine-König <ukleinek@xxxxxxxxxxxxxxxxxxxxxxxxxx> --- Hello, I already sent a similar patch that was discussed a bit[1], but was not taken. The list of allowed character was taken from Python's email package. Comparing with the former version I removed the quoting as described in the 2nd paragraph of the log and now I only test $recipient_name once. I will try to send this patch with next + this patch. I think it should work in principle, but --suppress-from is not honored. I will take a look on this issue later. Best regards Uwe [1] http://thread.gmane.org/gmane.comp.version-control.git/52093 git-send-email.perl | 23 +++++++++++++++++------ 1 files changed, 17 insertions(+), 6 deletions(-) diff --git a/git-send-email.perl b/git-send-email.perl index f43f92f..5785e29 100755 --- a/git-send-email.perl +++ b/git-send-email.perl @@ -459,16 +459,27 @@ sub unquote_rfc2047 { return "$_"; } -# If an address contains a . in the name portion, the name must be quoted. +# The name part of an address must consist only of alnum chars, space and a few +# others. +# If it contains a "forbidden" char in the name port, quote it according to +# rfc2047. sub sanitize_address_rfc822 { my ($recipient) = @_; - my ($recipient_name) = ($recipient =~ /^(.*?)\s+</); - if ($recipient_name && $recipient_name =~ /\./ && $recipient_name !~ /^".*"$/) { - my ($name, $addr) = ($recipient =~ /^(.*?)(\s+<.*)/); - $recipient = "\"$name\"$addr"; + my ($recipient_name, $recipient_addr) = ($recipient =~ /^(.*?)(\s+<.*)/); + + if ($recipient_name) { + if ($recipient_name =~ /[^-a-zA-Z0-9!*+\/ ]/ && $recipient_name !~ /=\?utf-8\?q?.*\?=/) { + $recipient_name =~ s/([^-a-zA-Z0-9!*+\/ ])/sprintf("=%02X", ord($1))/eg; + $recipient_name =~ s/ /_/; + $recipient_name =~ s/(.*)/=\?utf-8\?q\?$1\?=/; + } + + return "$recipient_name$recipient_addr"; + + } else { + return "$recipient"; } - return $recipient; } sub send_message -- 1.5.3.rc3.13.g7ab3 - To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html