From: David Woodhouse Date: Tue, 20 Jul 2010 23:14:43 +0000 (+0100) Subject: Convert process_time() to GError X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=09e07392acf04b519b9eda523eab18f23a4326d5;p=users%2Fdwmw2%2Fews-sync.git Convert process_time() to GError --- diff --git a/calitem_to_ical.c b/calitem_to_ical.c index f900d04..4ab1df4 100644 --- a/calitem_to_ical.c +++ b/calitem_to_ical.c @@ -34,7 +34,7 @@ int process_dailyrecurrence(xmlNode *xml_node, struct icalrecurrencetype *ical_r int process_organizer(icalcomponent *comp, xmlNode *xml_node, GError **error); int process_required_attendees(icalcomponent *comp, xmlNode *xml_node, GError **error); int process_optional_attendees(icalcomponent *comp, xmlNode *xml_node, GError **error); -int process_time(icalcomponent *comp, xmlNode *xml_node, icaltimetype *ical_time, GError **error); +gboolean process_time(icalcomponent *comp, xmlNode *xml_node, icaltimetype *ical_time, GError **error); gboolean process_truefalse(icalcomponent *comp, xmlNode *xml_node, gboolean *val, GError **error); gboolean process_location(icalcomponent *comp, xmlNode *xml_node, GError **error); gboolean process_sequence(icalcomponent *comp, xmlNode *xml_node, GError **error); @@ -87,11 +87,13 @@ icalcomponent *ews_calitem_to_ical(xmlNode *xml_node, GError **error) process_required_attendees(comp, xml_node, error); else if (!strcmp((char *)xml_node->name, "OptionalAttendees")) process_optional_attendees(comp, xml_node, error); - else if (!strcmp((char *)xml_node->name, "Start")) - process_time(comp, xml_node, &dtstart, error); - else if (!strcmp((char *)xml_node->name, "End")) - process_time(comp, xml_node, &dtend, error); - else if (!strcmp((char *)xml_node->name, "Body")) { + else if (!strcmp((char *)xml_node->name, "Start")) { + if (!process_time(comp, xml_node, &dtstart, error)) + goto err; + } else if (!strcmp((char *)xml_node->name, "End")) { + if (!process_time(comp, xml_node, &dtend, error)) + goto err; + } else if (!strcmp((char *)xml_node->name, "Body")) { if (!process_body(comp, xml_node, error)) goto err; } else if (!strcmp((char *)xml_node->name, "Location")) { @@ -316,14 +318,18 @@ int process_optional_attendees(icalcomponent *comp, xmlNode *xml_node, GError ** return 0; } -int process_time(icalcomponent *comp, xmlNode *xml_node, icaltimetype *ical_time, GError **error) +gboolean process_time(icalcomponent *comp, xmlNode *xml_node, icaltimetype *ical_time, GError **error) { char *ews_time = (char *)xmlNodeGetContent(xml_node); - if (!ews_time) - return -1; + if (!ews_time) { + g_set_error(error, EWS_ERROR, EWS_ERROR_PARSE, + "<%s> node is empty", xml_node->name); + return FALSE; + } + *ical_time = icaltime_from_string(ews_time); - return 0; + return TRUE; } gboolean process_truefalse(icalcomponent *comp, xmlNode *xml_node, gboolean *val, GError **error) @@ -385,6 +391,7 @@ gboolean process_body(icalcomponent *comp, xmlNode *xml_node, GError **error) "<%s> node is empty", xml_node->name); return FALSE; } + icalcomponent_set_description(comp, body); return TRUE; } @@ -485,7 +492,7 @@ int process_deleted_occurrences(icalcomponent *comp, xmlNode *xml_node, } count++; deletia = realloc(deletia, sizeof(icaltimetype) * count); - if (process_time(comp, xml_node2, &deletia[count-1], error)) { + if (!process_time(comp, xml_node2, &deletia[count-1], error)) { free(deletia); return -1; }