[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Quilt-dev] [PATCH v2] mail: handle email address with quoted commas
From: |
Wu Fengguang |
Subject: |
[Quilt-dev] [PATCH v2] mail: handle email address with quoted commas |
Date: |
Fri, 19 Dec 2008 21:44:00 +0800 |
User-agent: |
Mutt/1.5.18 (2008-05-17) |
Enable quilt mail to handle email addresses like
"Zhu, Yi" <address@hidden>, "Li, Shaohua" <address@hidden>
Here the comma inside the double quotes should not be interpreted.
Signed-off-by: Wu Fengguang <address@hidden>
---
--- quilt/scripts/edmail.orig 2008-12-13 10:40:36.000000000 +0800
+++ quilt/scripts/edmail 2008-12-19 21:39:38.000000000 +0800
@@ -7,6 +7,7 @@
# Message Header Extensions for Non-ASCII Text
use Getopt::Long;
+use Text::ParseWords;
use strict;
# This ugly trick lets the script work even if gettext support is missing.
@@ -121,6 +122,10 @@ sub check_recipient($) {
}
}
+sub split_addrs {
+ return parse_line('\s*,\s*', 1, @_);
+}
+
my %recipients;
sub process_header($) {
local ($_) = @_;
@@ -135,7 +140,7 @@ sub process_header($) {
if (exists $extract_recipients_from{lc $name}) {
#print "(($value))";
$value =~ s/^\s*//; $value =~ s/\s*$//;
- foreach my $recipient (split /\s*,\s*/s, $value) {
+ foreach my $recipient (split_addrs($value)) {
next if $recipient =~ /^\s*$/;
#print "<<$recipient>>";
my $deliver;
@@ -162,7 +167,7 @@ sub process_header($) {
# This is a recipients field. Split out all the recipients and
# check the addresses. Suppress duplicate recipients.
$value =~ s/^\s*//; $value =~ s/\s*$//;
- foreach my $recipient (split /\s*,\s*/, $value) {
+ foreach my $recipient (split_addrs($value)) {
next if $recipient =~ /^\s*$/;
my $deliver;
($recipient, $deliver) = check_recipient($recipient);