X-Git-Url: http://git.jankratochvil.net/?p=PerlMail.git;a=blobdiff_plain;f=contacts-n9k2mutt;h=6aa6561c53d9d4f0016da7e1dfbb29abef37d38d;hp=80636928bfc52ad7e1639deda8ac76a4156ff3db;hb=c3e8f93bdd428b21be0af55eed08f47cf14874b8;hpb=0a5d1d37f2edaa846e2c02e926006a249dad4ac8 diff --git a/contacts-n9k2mutt b/contacts-n9k2mutt index 8063692..6aa6561 100755 --- a/contacts-n9k2mutt +++ b/contacts-n9k2mutt @@ -1,6 +1,25 @@ #! /usr/bin/perl -# -# $Id$ +# +# $Id$ +# Copyright (C) 2002-2003 Jan Kratochvil +# +# 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 + +# Name: Lastname Firstname "nick1" "nick2", dropped text +# Company: same as Name to indicate company record + use vars qw($VERSION); $VERSION=do { my @r=(q$Revision$=~/\d+/g); sprintf "%d.".("%03d"x$#r),@r; }; @@ -8,7 +27,6 @@ use strict; use warnings; require Getopt::Long; -require PrecislovaniLace::Contacts; require Mail::Address; @@ -16,9 +34,16 @@ Getopt::Long::Configure( "no_ignorecase", "bundling", ); +my $opt_9000; die if !Getopt::Long::GetOptions( + "9000"=>\$opt_9000, ); +my $type="9210"; +$type="9000" if $opt_9000; +my $class="PerlMail::Contacts::$type"; +eval "require $class;1;" or die "Cannot load loader $class: $!"; + undef $/; while (<>) { my @data=map({ @@ -34,23 +59,27 @@ while (<>) { "iscompany"=>($record{"Name"} && $record{"Company"} && $record{"Name"} eq $record{"Company"}), })); } @record); - } PrecislovaniLace::Contacts->import($_)); + } $class->in($_)); 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) {