dav/sync.c

changeset 61
e9b102d5a6f6
parent 58
1708cba82ca3
child 64
112dbf7ba8b0
--- a/dav/sync.c	Mon Sep 01 17:09:18 2014 +0200
+++ b/dav/sync.c	Sat Oct 11 19:05:11 2014 +0200
@@ -109,22 +109,19 @@
 }
 
 static int res_matches_filter(SyncDirectory *dir, char *res_path) {
-    
     UCX_FOREACH(inc, dir->include) {
         regex_t* pattern = (regex_t*) inc->data;
-        if (regexec(pattern, res_path, 0, NULL, 0)) {
-            return 1;
+        if (regexec(pattern, res_path, 0, NULL, 0) == 0) {
+            UCX_FOREACH(exc, dir->exclude) {
+                regex_t* pattern = (regex_t*) exc->data;
+                if (regexec(pattern, res_path, 0, NULL, 0) == 0) {
+                    return 1;
+                }
+            }
+            return 0;
         }
     }
-    
-    UCX_FOREACH(exc, dir->exclude) {
-        regex_t* pattern = (regex_t*) exc->data;
-        if (!regexec(pattern, res_path, 0, NULL, 0)) {
-            return 1;
-        }
-    }
-    
-    return 0;
+    return 1;
 }
 
 int cmd_pull(CmdArgs *a) {

mercurial