From: Uwe Kleine-König Date: Wed, 11 Jul 2007 11:49:09 GMT Subject: Re: [PATCH] send-email: extend sanitize_address_rfc822 to do rfc2047 quoting Message-ID: <20070711114909.GA14086@informatik.uni-freiburg.de> In-Reply-To: <20070711084232.GE1528MdfPADPa@greensroom.kotnet.org> Sven Verdoolaege wrote: > On Tue, Jul 10, 2007 at 07:02:43PM +0200, Uwe Kleine-König wrote: > > my ($recipient) = @_; > > - my ($recipient_name) = ($recipient =~ /^(.*?)\s+ > + my ($recipient_name, $recipient_addr) = ($recipient =~ /^(.*?)(\s+<.*)/); > > + > > + if ($recipient_name && $recipient_name =~ /[^-a-zA-Z0-9!*+\/ ]/ && $recipient_name !~ /=\?utf-8\?q?.*\?=/) { > > Why the extra test for truthness of $recipient_name ? Try: my $recipient = 'skimo@kotnet.org'; my ($recipient_name, $recipient_addr) = ($recipient =~ /^(.*?)(\s+<.*)/); print "Hoppla\n" if (!$recipient_name); i.e. if the pattern doesn't match, recipient_name is undefined. But the function could be simplyfied anyhow. e.g. if ($recipient_name) { ... do all the quoting ... return "$recipient_name$recipient_addr"; } else { return $recipient; } Best regards Uwe -- Uwe Kleine-König http://www.google.com/search?q=square+root+of+2