=roskernel,=roscvs: List-Id updated.
[PerlMail.git] / contacts-n9k2mutt
index 8063692..ee4d9ad 100755 (executable)
@@ -1,6 +1,22 @@
 #! /usr/bin/perl
-#
-# $Id$
+# 
+#      $Id$
+# Copyright (C) 2002-2003 Jan Kratochvil <project-PerlMail@jankratochvil.net>
+# 
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+# 
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+# 
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
 
 use vars qw($VERSION);
 $VERSION=do { my @r=(q$Revision$=~/\d+/g); sprintf "%d.".("%03d"x$#r),@r; };
@@ -8,7 +24,7 @@ use strict;
 use warnings;
 
 require Getopt::Long;
-require PrecislovaniLace::Contacts;
+require PerlMail::Contacts;
 require Mail::Address;
 
 
@@ -34,23 +50,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) {