dav/sync.c

changeset 414
ea50585ec9d9
parent 412
dc74f736aea1
child 415
6e1861e8262c
equal deleted inserted replaced
413:241db665477a 414:ea50585ec9d9
257 } 257 }
258 return 1; 258 return 1;
259 } 259 }
260 260
261 static int res_matches_tags(DavResource *res, SyncTagFilter *tagfilter) { 261 static int res_matches_tags(DavResource *res, SyncTagFilter *tagfilter) {
262 int scope = res->iscollection ?
263 DAV_SYNC_TAGFILTER_SCOPE_COLLECTION
264 : DAV_SYNC_TAGFILTER_SCOPE_RESOURCE;
265 if(tagfilter->scope & scope != scope) {
266 return 1;
267 }
262 if(!tagfilter || tagfilter->mode == DAV_SYNC_TAGFILTER_OFF) { 268 if(!tagfilter || tagfilter->mode == DAV_SYNC_TAGFILTER_OFF) {
263 return 1; 269 return 1;
264 } 270 }
265 271
266 DavXmlNode *tagsprop = dav_get_property_ns(res, DAV_NS, "tags"); 272 DavXmlNode *tagsprop = dav_get_property_ns(res, DAV_NS, "tags");
277 static int localres_matches_tags( 283 static int localres_matches_tags(
278 SyncDirectory *dir, 284 SyncDirectory *dir,
279 LocalResource *res, 285 LocalResource *res,
280 SyncTagFilter *tagfilter) 286 SyncTagFilter *tagfilter)
281 { 287 {
288 int scope = res->isdirectory ?
289 DAV_SYNC_TAGFILTER_SCOPE_COLLECTION
290 : DAV_SYNC_TAGFILTER_SCOPE_RESOURCE;
291 if(tagfilter->scope & scope != scope) {
292 return 1;
293 }
282 if(!tagfilter || tagfilter->mode == DAV_SYNC_TAGFILTER_OFF) { 294 if(!tagfilter || tagfilter->mode == DAV_SYNC_TAGFILTER_OFF) {
283 return 1; 295 return 1;
284 } 296 }
285 297
286 DavBool changed = 0; 298 DavBool changed = 0;
344 if(a->argc != 1) { 356 if(a->argc != 1) {
345 fprintf(stderr, "Too %s arguments\n", a->argc < 1 ? "few" : "many"); 357 fprintf(stderr, "Too %s arguments\n", a->argc < 1 ? "few" : "many");
346 return -1; 358 return -1;
347 } 359 }
348 // if there are syntax errors in the command line, fail asap. 360 // if there are syntax errors in the command line, fail asap.
349 SyncTagFilter* tagfilter = parse_tagfilter_string(cmd_getoption(a, "tags")); 361 SyncTagFilter* tagfilter = parse_tagfilter_string(
362 cmd_getoption(a, "tags"), DAV_SYNC_TAGFILTER_SCOPE_RESOURCE);
350 if (!tagfilter) { 363 if (!tagfilter) {
351 fprintf(stderr, "Malformed tag filter\n"); 364 fprintf(stderr, "Malformed tag filter\n");
352 return -1; 365 return -1;
353 } 366 }
354 // TODO: tons of memory leaks... 367 // TODO: tons of memory leaks...
915 fprintf(stderr, "Too %s arguments\n", a->argc < 1 ? "few" : "many"); 928 fprintf(stderr, "Too %s arguments\n", a->argc < 1 ? "few" : "many");
916 return -1; 929 return -1;
917 } 930 }
918 931
919 // if there are syntax errors in the command line, fail asap. 932 // if there are syntax errors in the command line, fail asap.
920 SyncTagFilter* tagfilter = parse_tagfilter_string(cmd_getoption(a, "tags")); 933 SyncTagFilter* tagfilter = parse_tagfilter_string(
934 cmd_getoption(a, "tags"), DAV_SYNC_TAGFILTER_SCOPE_RESOURCE);
921 if (!tagfilter) { 935 if (!tagfilter) {
922 fprintf(stderr, "Malformed tag filter\n"); 936 fprintf(stderr, "Malformed tag filter\n");
923 return -1; 937 return -1;
924 } 938 }
925 939

mercurial