+syntax '"nickname"!' to force $name to be 'nickname'
[PerlMail.git] / contacts-n9k2mutt
index 8063692..fb3ef21 100755 (executable)
@@ -40,17 +40,21 @@ while (<>) {
                        my($name,$mail,$attr,$iscompany)=map(($data->{$_}),qw(name mail attr iscompany));
                        $name=~s/,.*$//s;
                        my @nicks=();
-                       push @nicks,$1 while $name=~s/"([^"]*)"//s;
+                       my $name_force;
+                       while ($name=~s/"([^"]*)"([!])?//s) {
+                               push @nicks,$1;
+                               $name_force=$1 if $2;
+                               }
                        $name=~s/\s*$//s;
                        $name=~s/^(\w+)\s+(\w+)$/$2 $1/s if !$iscompany;
-                       push @nicks,$name;
+                       push @nicks,$name if !$name_force;
                        for (@nicks) {
                                $_.=".$attr" if $attr;
                                s/\s+/./gs;
                                }
                        map({
                                        "nick"=>$_,
-                                       "obj"=>Mail::Address->new($name,$mail),
+                                       "obj"=>Mail::Address->new(($name_force || $name),$mail),
                                        },@nicks);
                        } @data);
        for (@nicked) {