Patch for 1.4 has been checked into 1.4 branch. As for HEAD, per JPR's request, I wrote a mail to discuss this problem. If there is a conclusion, I will made patch for HEAD. Thanks! Harry Rodrigo Moya wrote: On Tue, 2003-11-18 at 06:43, Harry Lu wrote:Rodrigo, What is your suggestions? :) Thanks! Harrylooks ok, please commit to 1.4 branch. For HEAD you'll have to do another patch, since the code has changed a bit. Also, please send patches to the list :-) cheersHarry Lu wrote:Rodrigo and JPR, Here is a patch based on 1.4 branch. Please review it. Here is the problem. The attached Bruins.ics is get from http://www.apple.com/ical/library/. I cut it to 2 events. If I import it into Evolution, since the timezone (US/Eastern) is not included in Evolution's buildin timezone list, though the import is successfu and I can see some black dates from the date calendar at the upper right, I can see nothing from dayview, weekview and month view. My patch changed the timezone into local default timezone so that the events can be seen. For the CVS HEAD, I guess this patch should go to e_cal_backend_file_receive_objects(), right? But this function is not finished yet, so I cannot patch it now. Let me know what I should do. Thanks! Harry ____________________________________________________________________ BEGIN:VCALENDAR CALSCALE:GREGORIAN METHOD:PUBLISH X-WR-TIMEZONE;VALUE=TEXT:US/Pacific X-WR-CALDESC:Boston Bruins PRODID:-//Apple Computer\, Inc//iCal 1.0//EN X-WR-RELCALID;VALUE=TEXT:334e484c-426f-11D7-BECF-427275696579 X-WR-CALNAME;VALUE=TEXT:Bruins VERSION:2.0 BEGIN:VEVENT SEQUENCE:2 DTSTAMP:20030922T092213Z SUMMARY:Bruins vs Devils LOCATION:FleetCenter, Boston UID:44657669-1008-11D7-BECF-427275696579 DTSTART;TZID=US/Eastern:20031008T200000 DURATION:PT2H30M END:VEVENT BEGIN:VEVENT SEQUENCE:2 DTSTAMP:20030922T092213Z SUMMARY:Bruins at Lightning LOCATION:St. Pete Times Forum, Tampa Bay UID:4c696768-1010-11D7-BECF-427275696579 DTSTART;TZID=US/Eastern:20031010T193000 DURATION:PT2H30M END:VEVENT END:VCALENDAR ____________________________________________________________________ Index: calendar//ChangeLog =================================================================== RCS file: /cvs/gnome/evolution/calendar/ChangeLog,v retrieving revision 1.1802.2.37 diff -u -r1.1802.2.37 ChangeLog --- calendar//ChangeLog 17 Nov 2003 04:16:34 -0000 1.1802.2.37 +++ calendar//ChangeLog 17 Nov 2003 09:29:35 -0000 @@ -1,3 +1,9 @@ +2003-11-17 Harry Lu <harry lu sun com> + + * pcs/cal-backend-file.c (cal_backend_file_update_object): + If the component's timezone is not included in buildin timezone + list, convert it to local default timezone. + 2003-11-11 Harry Lu <harry lu sun com> * gui/dialogs/recurrence-page.c (make_ending_count_special): Index: calendar//pcs/cal-backend-file.c =================================================================== RCS file: /cvs/gnome/evolution/calendar/pcs/Attic/cal-backend-file.c,v retrieving revision 1.80 diff -u -r1.80 cal-backend-file.c --- calendar//pcs/cal-backend-file.c 26 Apr 2003 16:44:48 -0000 1.80 +++ calendar//pcs/cal-backend-file.c 17 Nov 2003 09:29:37 -0000 @@ -1543,6 +1543,8 @@ { CalComponent *old_comp; CalComponent *comp; + CalComponentDateTime dt; + icaltimezone *zone, *default_zone; const char *comp_uid; struct icaltimetype last_modified; @@ -1564,6 +1566,46 @@ last_modified = icaltime_from_timet (time (NULL), 0); cal_component_set_last_modified (comp, &last_modified); + /* Check dtstart ,dtend and due's timezone, and convert it to local + * default timezone if the timezone is not in our builtin timezone + * list */ + cal_component_get_dtstart (comp, &dt); + if (dt.value && dt.tzid) { + zone = cal_backend_file_get_timezone ((CalBackend *)cbfile, dt.tzid); + if (!zone) { + default_zone = cal_backend_file_get_default_timezone ((CalBackend *)cbfile); + g_free ((char *)dt.tzid); + dt.tzid = g_strdup (icaltimezone_get_tzid (default_zone)); + cal_component_set_dtstart (comp, &dt); + } + } + cal_component_free_datetime (&dt); + + cal_component_get_dtend (comp, &dt); + if (dt.value && dt.tzid) { + zone = cal_backend_file_get_timezone ((CalBackend *)cbfile, dt.tzid); + if (!zone) { + default_zone = cal_backend_file_get_default_timezone ((CalBackend *)cbfile); + g_free ((char *)dt.tzid); + dt.tzid = g_strdup (icaltimezone_get_tzid (default_zone)); + cal_component_set_dtend (comp, &dt); + } + } + cal_component_free_datetime (&dt); + + cal_component_get_due (comp, &dt); + if (dt.value && dt.tzid) { + zone = cal_backend_file_get_timezone ((CalBackend *)cbfile, dt.tzid); + if (!zone) { + default_zone = cal_backend_file_get_default_timezone ((CalBackend *)cbfile); + g_free ((char *)dt.tzid); + dt.tzid = g_strdup (icaltimezone_get_tzid (default_zone)); + cal_component_set_due (comp, &dt); + } + } + cal_component_free_datetime (&dt); + cal_component_abort_sequence (comp); + /* Remove any old version of the component. */ old_comp = lookup_component (cbfile, comp_uid); if (old_comp) |