changeset 11:d8035079fa42

*** empty log message ***
author kono
date Thu, 23 Mar 2006 19:50:56 +0900
parents 1a68139a269f
children b55c65241693
files Calcon.pm
diffstat 1 files changed, 14 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/Calcon.pm	Wed Mar 22 22:12:25 2006 +0900
+++ b/Calcon.pm	Thu Mar 23 19:50:56 2006 +0900
@@ -4126,6 +4126,13 @@
 
 @ISA = ( 'Calcon::File_read' ) ;
 
+sub quoted_printable
+{
+    my ($d) = @_;
+    $d =~ s/=([0-9a-fA-F][0-9a-fA-F])/sprintf("%c",hex($1))/eg;
+    return ": ".$d;
+}
+
 sub decode {
     my ($self,$file) = @_;
     my ($debug) = $self->{'-debug'};
@@ -4139,6 +4146,10 @@
     $out->start_file('');
 
     while(<F>) {
+s/\r//g;
+s/\;CHARSET\=SHIFT_JIS//g;
+s/\;CHARSET\=EUC//g;
+s/\;ENCODING\=QUOTED\-PRINTABLE:(.*)/&quoted_printable($1)/eg;
 if (/^begin:\s*vcalendar/i) {
 } elsif (/^begin:\s*vcad/i) {
 } elsif (/^adr(.*):\s*(.*)/i) { $self->items($record,'address',$1,$2);
@@ -4147,7 +4158,9 @@
 } elsif (/^begin:\s*vevent/i) { $record = $self->make_record;
 } elsif (/^calscale:\s*(.*)/i) {
 } elsif (/^uid:\s*(.*)/i) {
+} elsif (/^x-gn:\s*(.*)/i) { $record->{'group'} .= $1;
 } elsif (/^description:\s*/i) { $record->{'memo'} .= $1;
+} elsif (/^note:\s*/i) { $record->{'memo'} .= $1;
 } elsif (/^dtend(.*):\s*(.*)/i) { $record->{'end-date'} = $self->date($2,$1?$1:$record->{'timezone'});
 } elsif (/^dtstamp(.*):\s*(.*)/i) { $record->{'modify-date'} = $self->date($2,$1?$1:$record->{'timezone'});
 } elsif (/^dtstart(.*):\s*(.*)/i) { $record->{'date'} = $self->date($2,$1?$1:$record->{'timezone'});
@@ -4168,6 +4181,7 @@
 } elsif (/^version:\s*(.*)/i) { $record->{'version'} = $1;
 } elsif (/^X-PHONETIC-LAST-NAME:\s*(.*)/i) { $record->{'name-yomi'} .= "$1 ";
 } elsif (/^X-PHONETIC-FIRST-NAME:\s*(.*)/i) { $record->{'name-yomi'} .= "$1 ";
+} elsif (/^SOUND.*:\s*(.*)/i) { $record->{'name-yomi'} .= "$1 ";
 } elsif (/^x-custom1:\s*(.*)/i) { $record->{'name-yomi'} = $1;
 } elsif (/^x-custom2:\s*(.*)/i) { $record->{'office-yomi'} = $1;
 } elsif (/^x-wr-calname.*:\s*(.*)/i) { $record->{'calendar'} = $1;