From: Art Cancro Date: Wed, 25 Dec 2002 07:05:26 +0000 (+0000) Subject: * set up ical_dezonify() to be called at appropriate times X-Git-Tag: v7.86~6073 X-Git-Url: https://code.citadel.org/?p=citadel.git;a=commitdiff_plain;h=b97032edde0fc71325784d4dc79412b6bd7ad652 * set up ical_dezonify() to be called at appropriate times (but it doesn't seem to work correctly yet) --- diff --git a/citadel/ChangeLog b/citadel/ChangeLog index b3a52ec05..a2f05fb21 100644 --- a/citadel/ChangeLog +++ b/citadel/ChangeLog @@ -1,4 +1,8 @@ $Log$ + Revision 601.94 2002/12/25 07:05:26 ajc + * set up ical_dezonify() to be called at appropriate times + (but it doesn't seem to work correctly yet) + Revision 601.93 2002/12/25 06:41:44 ajc * ical_dezonify.c: added (function to strip localized timestamps out of a component and replace them with UTC timestamps) @@ -4319,4 +4323,3 @@ Sat Jul 11 00:20:48 EDT 1998 Nathan Bryant Fri Jul 10 1998 Art Cancro * Initial CVS import - diff --git a/citadel/ical_dezonify.c b/citadel/ical_dezonify.c index c2b6022aa..d1eb69521 100644 --- a/citadel/ical_dezonify.c +++ b/citadel/ical_dezonify.c @@ -1,3 +1,14 @@ +/* + * $Id$ + * + * Function to go through an ical component set and convert all non-UTC + * DTSTART and DTEND properties to UTC. It also strips out any VTIMEZONE + * subcomponents afterwards, because they're irrelevant. + * + */ + +#ifdef HAVE_ICAL_H + #include #include #include @@ -5,8 +16,7 @@ #include #include #include - -void ical_dezonify(icalcomponent *cal); +#include "ical_dezonify.h" /* * Back end function for ical_dezonify() @@ -54,12 +64,10 @@ void ical_dezonify_backend(icalcomponent *cal, icalproperty *prop) { } /* Do the conversion. - * (I had to specify the 'from' and 'to' timezones backwards. Is the - * API documentation wrong?) */ icaltimezone_convert_time(&TheTime, - icaltimezone_get_utc_timezone(), - t + t, + icaltimezone_get_utc_timezone() ); /* Now strip the TZID parameter, because it's incorrect now. */ @@ -133,3 +141,5 @@ void ical_dezonify(icalcomponent *cal) { icalcomponent_free(vt); } } + +#endif /* HAVE_ICAL_H */ diff --git a/citadel/ical_dezonify.h b/citadel/ical_dezonify.h new file mode 100644 index 000000000..f638de237 --- /dev/null +++ b/citadel/ical_dezonify.h @@ -0,0 +1 @@ +void ical_dezonify(icalcomponent *cal); diff --git a/citadel/serv_calendar.c b/citadel/serv_calendar.c index e6a8ef32d..4abbbf776 100644 --- a/citadel/serv_calendar.c +++ b/citadel/serv_calendar.c @@ -35,6 +35,7 @@ #ifdef HAVE_ICAL_H #include +#include "ical_dezonify.h" struct ical_respond_data { char desired_partnum[SIZ]; @@ -138,6 +139,7 @@ void ical_send_a_reply(icalcomponent *request, char *action) { } the_reply = icalcomponent_new_clone(request); + ical_dezonify(the_reply); if (the_reply == NULL) { lprintf(3, "ERROR: cannot clone request\n"); return; @@ -271,6 +273,7 @@ void ical_locate_part(char *name, char *filename, char *partnum, char *disp, } if (strcasecmp(partnum, ird->desired_partnum)) return; ird->cal = icalcomponent_new_from_string(content); + ical_dezonify(ird->cal); } @@ -412,6 +415,7 @@ void ical_locate_original_event(char *name, char *filename, char *partnum, char icalcomponent_free(oec->c); } oec->c = icalcomponent_new_from_string(content); + ical_dezonify(oec->c); } @@ -447,6 +451,7 @@ void ical_merge_attendee_reply(icalcomponent *event, icalcomponent *reply) { /* Clone the reply, because we're going to rip its guts out. */ reply = icalcomponent_new_clone(reply); + ical_dezonify(reply); /* At this point we're looking at the correct subcomponents. * Iterate through the attendees looking for a match. @@ -1065,6 +1070,7 @@ void ical_send_out_invitations(icalcomponent *cal) { lprintf(3, "ERROR: cannot clone calendar object\n"); return; } + ical_dezonify(the_request); /* Extract the summary string -- we'll use it as the * message subject for the request @@ -1240,6 +1246,7 @@ void ical_ctdl_set_extended_msgid(char *name, char *filename, char *partnum, */ if (!strcasecmp(cbtype, "text/calendar")) { cal = icalcomponent_new_from_string(content); + ical_dezonify(cal); if (cal != NULL) { p = ical_ctdl_get_subprop(cal, ICAL_UID_PROPERTY); if (p != NULL) { @@ -1366,6 +1373,7 @@ void ical_obj_aftersave_backend(char *name, char *filename, char *partnum, if (!strcasecmp(cbtype, "text/calendar")) { cal = icalcomponent_new_from_string(content); if (cal != NULL) { + ical_dezonify(cal); ical_saving_vevent(cal); icalcomponent_free(cal); }