From: David Woodhouse Date: Sun, 18 Jul 2010 22:31:22 +0000 (+0100) Subject: Factor out xml_node -> ical conversion function completely X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=2412f020a68083363b3a09c26ce2597cf9b211c4;p=users%2Fdwmw2%2Fews-sync.git Factor out xml_node -> ical conversion function completely --- diff --git a/ews2ical.c b/ews2ical.c index 501d901..2e29eb5 100644 --- a/ews2ical.c +++ b/ews2ical.c @@ -35,15 +35,16 @@ int process_itemid(icalcomponent *comp, xmlNode *xmlnode); icaltimezone *get_timezone(xmlNode *xmlnode); icaltimezone *get_meeting_timezone(xmlNode *xml_node); +icalcomponent *ews_calitem_to_ical(xmlNode *xml_node); + int main(int argc, char **argv) { + icalcomponent *calcomp; xmlDocPtr xml_doc; xmlNode *xml_node; - icaltimezone *icaltz; - icalcomponent *comp, *calcomp; - icalproperty *prop; int xmlfd = 0; /* stdin */ char buf[1]; + char *outbuf; if (argc >= 2) { xmlfd = open(argv[1], O_RDONLY); @@ -138,6 +139,21 @@ int main(int argc, char **argv) return -1; } + calcomp = ews_calitem_to_ical(xml_node); + + outbuf =icalcomponent_as_ical_string_r(calcomp); + fprintf(calfile, "%s", outbuf); + free(outbuf); + + return 0; +} + +icalcomponent *ews_calitem_to_ical(xmlNode *xml_node) +{ + icaltimezone *icaltz; + icalcomponent *comp, *calcomp; + icalproperty *prop; + calcomp = icalcomponent_new_vcalendar(); icalcomponent_set_method(calcomp, ICAL_METHOD_PUBLISH); prop = icalproperty_new_version("2.0"); @@ -179,13 +195,7 @@ int main(int argc, char **argv) #endif } icalcomponent_add_component(calcomp, comp); - if (1) { - char *vtz = icalcomponent_as_ical_string_r(calcomp); - fprintf(calfile, "%s", vtz); - free(vtz); - } - - return 0; + return calcomp; } int process_mailbox(xmlNode *xml_node, const char **r_name, const char **r_email)