From 465b428fbcb08feaa179fee66e372a282e84dea9 Mon Sep 17 00:00:00 2001 From: David Woodhouse Date: Thu, 22 Jul 2010 23:09:26 +0100 Subject: [PATCH] Fix deletion --- ews_syncfolder.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/ews_syncfolder.c b/ews_syncfolder.c index 4df4f9a..d47506b 100644 --- a/ews_syncfolder.c +++ b/ews_syncfolder.c @@ -241,6 +241,7 @@ int main(int argc, char **argv) char *ics_filename = g_strdup_printf("%s/ews-sync/%s.ics", g_get_home_dir(), this->itemid); if (this->type == ITEM_DELETE) { + printf("Deleting %s\n", xml_filename); unlink(xml_filename); unlink(ics_filename); } else { @@ -431,9 +432,11 @@ int process_changes(xmlNode *node, struct item_change **changes) continue; if (!strcmp((char *)node->name, "Create")) type = ITEM_CREATE; - else if (!strcmp((char *)node->name, "Delete")) + else if (!strcmp((char *)node->name, "Delete")) { type = ITEM_DELETE; - else if (!strcmp((char *)node->name, "Update")) + node2 = node; + goto itemid; + } else if (!strcmp((char *)node->name, "Update")) type = ITEM_UPDATE; else { fprintf(stderr, "Unknown change type '%s'\n", @@ -451,6 +454,7 @@ int process_changes(xmlNode *node, struct item_change **changes) node->name); return -1; } + itemid: for (node2 = node2->children; node2; node2 = node2->next) { if (node2->type != XML_ELEMENT_NODE) continue; -- 2.49.0