diff -r 781aee172901 -r 16d6b97fbf33 dav/db.c --- a/dav/db.c Thu Mar 17 15:06:26 2016 +0100 +++ b/dav/db.c Thu Mar 17 20:24:37 2016 +0100 @@ -59,7 +59,7 @@ xmlDocSetRootElement(doc, root); if(xmlSaveFormatFileEnc(db_file, doc, "UTF-8", 1) != -1) { db->resources = ucx_map_new(2048); - db->remove = ucx_map_new(8); + //db->remove = ucx_map_new(8); } else { free(db); db = NULL; @@ -71,7 +71,8 @@ free(db_file); db->resources = ucx_map_new(2048); - db->remove = ucx_map_new(16); + //db->remove = ucx_map_new(16); + db->conflict = ucx_map_new(16); int error = 0; while(xmlTextReaderRead(reader)) { int type = xmlTextReaderNodeType(reader); @@ -86,10 +87,10 @@ error = 1; break; } - } else if(xstreq(name, "remove")) { - LocalResource *res = process_remove(reader); + } else if(xstreq(name, "conflict")) { + LocalResource *res = process_conflict(reader); if(res) { - ucx_map_cstr_put(db->remove, res->path, res); + ucx_map_cstr_put(db->conflict, res->path, res); } else { error = 1; break; @@ -173,7 +174,7 @@ } } -LocalResource* process_remove(xmlTextReaderPtr reader) { +LocalResource* process_conflict(xmlTextReaderPtr reader) { LocalResource *res = calloc(1, sizeof(LocalResource)); int path = 0; @@ -189,7 +190,7 @@ const xmlChar *value = xmlTextReaderConstValue(reader); res->path = strdup((char*)value); } else if(XML_READER_TYPE_END_ELEMENT) { - if(xstreq(name, "remove")) { + if(xstreq(name, "conflict")) { break; } else { path = 0; @@ -283,6 +284,7 @@ } // write all remove entries +/* i = ucx_map_iterator(db->remove); UCX_MAP_FOREACH(key, res, i) { // @@ -296,6 +298,22 @@ // xmlTextWriterEndElement(writer); } +*/ + + // write all conflict entries + i = ucx_map_iterator(db->conflict); + UCX_MAP_FOREACH(key, res, i) { + // + xmlTextWriterStartElement(writer, BAD_CAST "conflict"); + + xmlTextWriterWriteElement( + writer, + BAD_CAST "path", + BAD_CAST res->path); + + // + xmlTextWriterEndElement(writer); + } // end xmlTextWriterEndElement(writer);