From c0d94536fc19e027806fbb20124e12f76c6eb8ad Mon Sep 17 00:00:00 2001 From: David Woodhouse Date: Wed, 21 Jul 2010 00:10:33 +0100 Subject: [PATCH] Convert location/sequence/body/subject to GError --- calitem_to_ical.c | 97 +++++++++++++++++++++++------------------------ 1 file changed, 48 insertions(+), 49 deletions(-) diff --git a/calitem_to_ical.c b/calitem_to_ical.c index 776538f..f900d04 100644 --- a/calitem_to_ical.c +++ b/calitem_to_ical.c @@ -36,10 +36,10 @@ int process_required_attendees(icalcomponent *comp, xmlNode *xml_node, GError ** 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_truefalse(icalcomponent *comp, xmlNode *xml_node, gboolean *val, GError **error); -int process_location(icalcomponent *comp, xmlNode *xml_node, GError **error); -int process_sequence(icalcomponent *comp, xmlNode *xml_node, GError **error); -int process_body(icalcomponent *comp, xmlNode *xml_node, GError **error); -int process_subject(icalcomponent *comp, xmlNode *xml_node, GError **error); +gboolean process_location(icalcomponent *comp, xmlNode *xml_node, GError **error); +gboolean process_sequence(icalcomponent *comp, xmlNode *xml_node, GError **error); +gboolean process_body(icalcomponent *comp, xmlNode *xml_node, GError **error); +gboolean process_subject(icalcomponent *comp, xmlNode *xml_node, GError **error); int process_recurrence(icalcomponent *comp, xmlNode *xml_node, icaltimezone *zone, GError **error); int process_deleted_occurrences(icalcomponent *comp, xmlNode *xml_node, icaltimetype **deletia, int *count, GError **error); @@ -91,13 +91,16 @@ icalcomponent *ews_calitem_to_ical(xmlNode *xml_node, GError **error) 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")) - process_body(comp, xml_node, error); - else if (!strcmp((char *)xml_node->name, "Location")) - process_location(comp, xml_node, error); - else if (!strcmp((char *)xml_node->name, "Subject")) - process_subject(comp, xml_node, error); - else if (!strcmp((char *)xml_node->name, "Recurrence")) + 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")) { + if (!process_location(comp, xml_node, error)) + goto err; + } else if (!strcmp((char *)xml_node->name, "Subject")) { + if (!process_subject(comp, xml_node, error)) + goto err; + } else if (!strcmp((char *)xml_node->name, "Recurrence")) process_recurrence(comp, xml_node, icaltz, error); else if (!strcmp((char *)xml_node->name, "DeletedOccurrences")) process_deleted_occurrences(comp, xml_node, &deletia, &deletia_count, error); @@ -108,9 +111,10 @@ icalcomponent *ews_calitem_to_ical(xmlNode *xml_node, GError **error) goto err; } else if (!strcmp((char *)xml_node->name, "ReminderMinutesBeforeStart")) process_reminder_mins(comp, xml_node, error); - else if (!strcmp((char *)xml_node->name, "AppointmentSequenceNumber")) - process_sequence(comp, xml_node, error); - else if (!strcmp((char *)xml_node->name, "ParentFolderId") || + else if (!strcmp((char *)xml_node->name, "AppointmentSequenceNumber")) { + if (!process_sequence(comp, xml_node, error)) + goto err; + } 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") || @@ -344,64 +348,59 @@ gboolean process_truefalse(icalcomponent *comp, xmlNode *xml_node, gboolean *val return TRUE; } -int process_location (icalcomponent *comp, xmlNode *xml_node, GError **error) +gboolean process_location (icalcomponent *comp, xmlNode *xml_node, GError **error) { const char *loc = (char *)xmlNodeGetContent(xml_node); - if (!loc) - return -1; + if (!loc) { + g_set_error(error, EWS_ERROR, EWS_ERROR_PARSE, + "<%s> node is empty", xml_node->name); + return FALSE; + } + icalcomponent_set_location(comp, loc); - return 0; + return TRUE; } -int process_sequence (icalcomponent *comp, xmlNode *xml_node, GError **error) +gboolean process_sequence (icalcomponent *comp, xmlNode *xml_node, GError **error) { const char *seq = (char *)xmlNodeGetContent(xml_node); - if (!seq) - return -1; + if (!seq) { + g_set_error(error, EWS_ERROR, EWS_ERROR_PARSE, + "<%s> node is empty", xml_node->name); + return FALSE; + } + icalcomponent_set_sequence(comp, strtol(seq, NULL, 10)); - return 0; + return TRUE; } -int process_body(icalcomponent *comp, xmlNode *xml_node, GError **error) +gboolean process_body(icalcomponent *comp, xmlNode *xml_node, GError **error) { const char *body = (char *)xmlNodeGetContent(xml_node); - if (!body) - return -1; - - if (!strncasecmp(body, " node is empty", xml_node->name); + return FALSE; } - - - return 0; + icalcomponent_set_description(comp, body); + return TRUE; } -int process_subject(icalcomponent *comp, xmlNode *xml_node, GError **error) +gboolean process_subject(icalcomponent *comp, xmlNode *xml_node, GError **error) { const char *subject = (char *)xmlNodeGetContent(xml_node); - if (!subject) - return -1; + if (!subject) { + g_set_error(error, EWS_ERROR, EWS_ERROR_PARSE, + "<%s> node is empty", xml_node->name); + return FALSE; + } icalcomponent_set_summary(comp, subject); - return 0; + return TRUE; } -- 2.50.1