{
icalcomponent *comp = NULL, *dst_zone = NULL, *std_zone = NULL;
icalproperty *prop;
+ icaltimezone *z;
const char *tzname = NULL;
int std_offset, dst_offset;
}
if (std_zone && dst_zone) {
- icaltimezone *z;
-
prop = icalproperty_new_tzoffsetfrom(dst_offset);
icalcomponent_add_property(std_zone, prop);
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;
}