my $CARD;
my $home = $ENV{'HOME'} || $ENV{'LOGDIR'} || (getpwuid($<))[7] || die "You're homeless!\n";
open CARD, "< $home/.gnome/GnomeCard.gcrd" or die "Sorry, could not open default card file: $!";
while (<CARD>) {
read_card($CARD) if (/^BEGIN:VCARD/);
}
1;
sub read_card {
my $CARD = shift;
my ($name, $pobox, $extended, $street, $city, $region, $postalcode, $country);
while (<CARD>) {
if (/^END:VCARD/) {
chomp($name);
chomp($country);
my $frame = abi::XAP_Frame::getLastFocussed;
my $view = $frame->getCurrentView;
$view->write "$pobox\n" unless ($pobox eq "");
$view->write "$name\n";
$view->write "$street\n";
$view->write "$postalcode $city ($region)\n";
$view->write "$country\n";
return 0;
}
else {
my ($type, $data) = split /:/;
$name = $data if ($type eq "FN");
if ($type =~ /^ADR/) {
($pobox, $extended, $street, $city, $region, $postalcode, $country) = split(/;/, $data);
}
}
}
}