changeset 21:cc4f95f742f7

fix for iCal
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Fri, 11 Oct 2013 17:33:37 +0900
parents 3fcdab33e15d
children 8bb1a007ed89
files Calcon.pm
diffstat 1 files changed, 8 insertions(+), 6 deletions(-) [+]
line wrap: on
line diff
--- a/Calcon.pm	Fri Oct 11 11:27:03 2013 +0900
+++ b/Calcon.pm	Fri Oct 11 17:33:37 2013 +0900
@@ -2913,7 +2913,7 @@
         $dtend = "\nDTEND;VALUE=DATE:$dtend";
     }
     if (defined( $record{'modify-date'})) {
-	$dtstamp = "\nDTSTAMP;TZID=$timezone:".$self->date($record{'modify-date'});
+	$dtstamp = "\nDTSTAMP:".$self->date($record{'modify-date'})."Z";
     }
 
     my $summary = '';
@@ -4202,8 +4202,10 @@
     open(F,"<".$file);
 
     $out->start_file('');
-
+    my $line = 0;
+    my $ev= 0;
     while(<F>) {
+       $line++;
 s/\r//g;
 s/\;CHARSET\=SHIFT_JIS//g;
 s/\;CHARSET\=EUC//g;
@@ -4215,7 +4217,7 @@
 } elsif (/^adr(.*):\s*(.*)/i) { $self->items($record,'address',$1,$2);
 } elsif (/^bday:\s*(.*)/i) { $record->{'birth'} = $self->make_date($1);
 } elsif (/^begin:\s*vcard/i) {  $record = $self->make_record;
-} elsif (/^begin:\s*vevent/i) { $record = $self->make_record;
+} elsif (/^begin:\s*vevent/i) { $record = $self->make_record; if($ev) { print STDERR "$line no end vevet \n"; } $ev=1;
 } elsif (/^calscale:\s*(.*)/i) {
 } elsif (/^uid:\s*(.*)/i) {
 } elsif (/^x-gn:\s*(.*)/i) { $record->{'group'} .= $1;
@@ -4234,16 +4236,16 @@
 } elsif (/^X-GNO:/i) {
 } elsif (/^X-ABUID:/i) {
 } elsif (/^note:\s*(.*)/i) { $record->{'memo'} .= $1;
+} elsif (/^dtend;value\=date:\s*(.*)/i) {           $record->{'all-day'} = 'true'; $record->{'end-date'} = $self->date($1);
 } elsif (/^dtend(.*):\s*(.*)/i) { $record->{'end-date'} = $self->date($2,$1?$1:$record->{'timezone'});
-     if (//) {
-          $record->{'all-day'} = 'true';
-     }
 } elsif (/^dtstamp(.*):\s*(.*)/i) { $record->{'modify-date'} = $self->date($2,$1?$1:$record->{'timezone'});
+} elsif (/^dtstart;value\=date:\s*(.*)/i) {           $record->{'all-day'} = 'true'; $record->{'end-date'} = $self->date($1);
 } elsif (/^dtstart(.*):\s*(.*)/i) { $record->{'date'} = $self->date($2,$1?$1:$record->{'timezone'});
 } elsif (/^duration:\s*(.*)/i) { $self->duration($record,$1);
 } elsif (/^email(.*):\s*(.*)/i) { $self->items($record,'mail',$1,$2);
 } elsif (/^end:\s*vcard/i) { $self->vcard($record);
 } elsif (/^end:\s*vevent/i) { 
+    $ev=0;
     next if ($record->{'memo'} =~ /^\s+$/);
     $self->event($record);
 } elsif (/^fn:\s*(.*)/i) { $self->name($record,$1);