From d329e1804fbbb972cbcd775136bb4062b7e760c3 Mon Sep 17 00:00:00 2001 From: David Woodhouse Date: Mon, 19 Jul 2010 00:22:09 +0100 Subject: [PATCH] Handle timezones (like Arizona) which don't do DST --- ews2ical.c | 23 ++++++++++++++++------- 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/ews2ical.c b/ews2ical.c index 2e29eb5..e8277be 100644 --- a/ews2ical.c +++ b/ews2ical.c @@ -1063,6 +1063,7 @@ icaltimezone *get_meeting_timezone(xmlNode *xml_node) { icalcomponent *comp = NULL, *dst_zone = NULL, *std_zone = NULL; icalproperty *prop; + icaltimezone *z; const char *tzname = NULL; int std_offset, dst_offset; @@ -1106,8 +1107,6 @@ icaltimezone *get_meeting_timezone(xmlNode *xml_node) } if (std_zone && dst_zone) { - icaltimezone *z; - prop = icalproperty_new_tzoffsetfrom(dst_offset); icalcomponent_add_property(std_zone, prop); @@ -1116,10 +1115,20 @@ icaltimezone *get_meeting_timezone(xmlNode *xml_node) icalcomponent_add_component(comp, std_zone); icalcomponent_add_component(comp, dst_zone); + } else { + if (!std_zone) { + std_zone = icalcomponent_new(ICAL_XSTANDARD_COMPONENT); - z = icaltimezone_new(); - icaltimezone_set_component(z, comp); - return z; - } - return NULL; + prop = icalproperty_new_tzoffsetto(std_offset); + icalcomponent_add_property(std_zone, prop); + + prop = icalproperty_new_tzoffsetfrom(std_offset); + icalcomponent_add_property(std_zone, prop); + } + icalcomponent_add_component(comp, std_zone); + } + + z = icaltimezone_new(); + icaltimezone_set_component(z, comp); + return z; } -- 2.49.0