Contacts -> PerlMail::Contacts
[PerlMail.git] / contacts-n9k2mutt
index 8063692..5054de9 100755 (executable)
@@ -8,7 +8,7 @@ use strict;
 use warnings;
 
 require Getopt::Long;
-require PrecislovaniLace::Contacts;
+require PerlMail::Contacts;
 require Mail::Address;
 
 
@@ -34,23 +34,27 @@ while (<>) {
                                                        "iscompany"=>($record{"Name"} && $record{"Company"} && $record{"Name"} eq $record{"Company"}),
                                                        }));
                                        } @record);
-                       } PrecislovaniLace::Contacts->import($_));
+                       } PerlMail::Contacts->import($_));
        my @nicked=map({
                        my $data=$_;
                        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) {