int process_subject(icalcomponent *comp, xmlNode *xml_node);
int process_recurrence(icalcomponent *comp, xmlNode *xml_node);
int process_itemid(icalcomponent *comp, xmlNode *xmlnode);
+int process_reminder_mins(icalcomponent *comp, xmlNode *xmlnode);
icaltimezone *get_timezone(xmlNode *xmlnode);
icaltimezone *get_meeting_timezone(xmlNode *xml_node);
process_recurrence(comp, xml_node);
else if (!strcmp((char *)xml_node->name, "ItemId"))
process_itemid(comp, xml_node);
+ else if (!strcmp((char *)xml_node->name, "ReminderMinutesBeforeStart"))
+ process_reminder_mins(comp, xml_node);
+ else if (!strcmp((char *)xml_node->name, "ParentFolderId") ||
+ !strcmp((char *)xml_node->name, "DateTimeReceived") ||
+ !strcmp((char *)xml_node->name, "Size") ||
+ !strcmp((char *)xml_node->name, "IsSubmitted") ||
+ !strcmp((char *)xml_node->name, "IsDraft") ||
+ !strcmp((char *)xml_node->name, "IsFromMe") ||
+ !strcmp((char *)xml_node->name, "IsResend") ||
+ !strcmp((char *)xml_node->name, "IsUnmodified") ||
+ !strcmp((char *)xml_node->name, "DateTimeSent") ||
+ !strcmp((char *)xml_node->name, "DateTimeCreated") ||
+ !strcmp((char *)xml_node->name, "ResponseObjects") ||
+ !strcmp((char *)xml_node->name, "DisplayCc") ||
+ !strcmp((char *)xml_node->name, "DisplayTo") ||
+ !strcmp((char *)xml_node->name, "Culture") ||
+ !strcmp((char *)xml_node->name, "IsRecurring") ||
+ !strcmp((char *)xml_node->name, "MeetingRequestWasSent") ||
+ !strcmp((char *)xml_node->name, "IsResponseRequested") ||
+ !strcmp((char *)xml_node->name, "MyResponseType") ||
+ !strcmp((char *)xml_node->name, "ConflictingMeetingCount") ||
+ !strcmp((char *)xml_node->name, "AdjacentMeetingCount") ||
+ !strcmp((char *)xml_node->name, "TimeZone") ||
+ !strcmp((char *)xml_node->name, "AppointmentSequenceNumber") ||
+ !strcmp((char *)xml_node->name, "AppointmentState")) {
+ /* Ignore these */
+ }
#if 0
- else
- fprintf(stderr, "Unhandled node type '%s'\n", xml_node->name);
+ else
+ fprintf(stderr, "Unhandled node type '%s'\n", xml_node->name);
#endif
}
icalcomponent_add_component(calcomp, comp);
icalcomponent_set_uid(comp, id);
return 0;
}
+int process_reminder_mins(icalcomponent *calcomp, xmlNode *xml_node)
+{
+ const char *minutes;
+ int minutesnr;
+ icalcomponent *comp;
+ icalproperty *prop;
+ struct icaltriggertype trig;
+
+ minutes = (char *)xmlNodeGetContent(xml_node);
+ if (!minutes)
+ return -1;
+
+ minutesnr = strtol(minutes, NULL, 10);
+
+ comp = icalcomponent_new_valarm();
+ prop = icalproperty_new_action(ICAL_ACTION_DISPLAY);
+ icalcomponent_add_property(comp, prop);
+ prop = icalproperty_new_description("REMINDER");
+ icalcomponent_add_property(comp, prop);
+ trig = icaltriggertype_from_int(-minutesnr * 60);
+ prop = icalproperty_new_trigger(trig);
+ icalcomponent_add_property(comp, prop);
+
+ icalcomponent_add_component(calcomp, comp);
+ return 0;
+}
static const char *ews_tz_to_ical(const char *ewstz)
{