]> www.infradead.org Git - users/dwmw2/ews-sync.git/commitdiff
Fix deletion
authorDavid Woodhouse <dwmw2@infradead.org>
Thu, 22 Jul 2010 22:09:26 +0000 (23:09 +0100)
committerDavid Woodhouse <dwmw2@infradead.org>
Thu, 22 Jul 2010 22:09:26 +0000 (23:09 +0100)
ews_syncfolder.c

index 4df4f9a4e3c2afc8c4232975c966d7b259013ec2..d47506bc48248b2df31b89d1f1fba13b54260dab 100644 (file)
@@ -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;