diff options
Diffstat (limited to 'email/vcard-filter')
-rwxr-xr-x | email/vcard-filter | 154 |
1 files changed, 0 insertions, 154 deletions
diff --git a/email/vcard-filter b/email/vcard-filter deleted file mode 100755 index 363aa07..0000000 --- a/email/vcard-filter +++ /dev/null @@ -1,154 +0,0 @@ -#!/usr/bin/perl -Tw - -# mutt.vcard.filter - vcard filter for use with the mutt autoview facility -# Copyright (C) 1997,1998,1999 David A Pearson -# -# 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., 675 Mass Ave, Cambridge, MA 02139, USA. - -# This little perl script is a simple filter for text/x-vcard -# attachments. I'm pretty sure I've *not* included everything -# possible in here, but it "works for me". Feel free to improve -# in any way you see fit. -# -# Here is how I use it. In my ~/.mutt_mailcap (use your filename of -# choice) I have the following entry: -# -# text/x-vcard; mutt.vcard.filter; copiousoutput -# -# All you then need to do is add a line like: -# -# auto_view text/x-vcard -# -# to your ~/.muttrc (use your filename of choice). -# -# All comments/flames/feedback can be directed to: -# -# davep@davep.org -# -# http://www.davep.org/mutt/ -# - -use strict; - -my $in_card = 0; -my @address = (); -my @contacts = (); -my @additional = (); -my @notes = (); -my $name = ""; -my $title = ""; -my $org = ""; -my $found_note = 0; -my $len; -my $i; -my $addr_line; -my $contact_line; - -while ( <> ) -{ - if ( $in_card ) - { - if ( /^fn:\s*(.*)$/i ) - { - $name = $1; - } - elsif ( /^n:\s*(.*);\s*(.*)$/i ) - { - @additional = ( "", "Additional information:", "" ) if $#additional == -1; - - @additional = ( @additional, "Last Name:\t$1", "First Name:\t$2" ); - } - elsif ( /^title:\s*(.*)$/i ) - { - $title = $1; - } - elsif ( /^org:\s*(.*)$/i ) - { - $org = $1; - } - elsif ( /^adr:\s*(.*)$/i ) - { - my $addr = $1; - - $addr =~ s/;+/;/g; - - @address = split( /;/, $addr ); - } - elsif ( /^email;\s*(.*?):\s*(.*)$/i || /^tel;\s*(.*?):\s*(.*)$/i ) - { - my $type = $1; - my $value = $2; - - @contacts = ( @contacts, uc( substr( $type, 0, 1 ) ) . - substr( $type, 1 ) . ": $value" ); - } - elsif ( /^note:\s*(.*)$/i ) - { - @notes = ( "" ) if $#notes == -1; - @notes = ( @notes, $1 ); - - $found_note = 1; - } - elsif ( /^=.{2}=$/ && $found_note ) - { - my $line = <>; - - chomp( $line ); - - @notes = ( "" ) if $#notes == -1; - @notes = ( @notes, $line ); - } - elsif ( /^end:\s*vcard$/i ) - { - $in_card = 0; - } - } - else - { - $in_card = /^begin:\s*vcard\s*$/i; - } -} - -@address = ( $org, @address ) if $org; -@address = ( $title, @address ) if $title; -@address = ( $name, @address ) if $name; - -format STDOUT = -@<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< @<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< -$addr_line, $contact_line -. - -$len = $#address > $#contacts ? $#address : $#contacts; - -print "" . ( "=" x 76 ) . "\n"; - -for ( $i = 0; $i <= $len; $i++ ) -{ - $addr_line = $i <= $#address ? $address[ $i ] : ""; - $contact_line = $i <= $#contacts ? $contacts[ $i ] : ""; - write; -} - -for ( $i = 0; $i <= $#notes; $i++ ) -{ - print "$notes[ $i ]\n"; -} - -for ( $i = 0; $i <= $#additional; $i++ ) -{ - print "$additional[ $i ]\n"; -} - -print "" . ( "=" x 76 ) . "\n"; |