dav/tags.h

changeset 414
ea50585ec9d9
parent 400
90c6bfa94fa2
child 524
d53fd1006485
equal deleted inserted replaced
413:241db665477a 414:ea50585ec9d9
45 #define DAV_SYNC_TAGFILTER_AND 1 45 #define DAV_SYNC_TAGFILTER_AND 1
46 #define DAV_SYNC_TAGFILTER_OR 2 46 #define DAV_SYNC_TAGFILTER_OR 2
47 #define DAV_SYNC_TAGFILTER_ONE 3 47 #define DAV_SYNC_TAGFILTER_ONE 3
48 #define DAV_SYNC_TAGFILTER_NONE 4 48 #define DAV_SYNC_TAGFILTER_NONE 4
49 49
50 #define DAV_SYNC_TAGFILTER_SCOPE_RESOURCE 1
51 #define DAV_SYNC_TAGFILTER_SCOPE_COLLECTION 2
52
50 typedef struct DavTag { 53 typedef struct DavTag {
51 char *name; 54 char *name;
52 char *color; 55 char *color;
53 } DavTag; 56 } DavTag;
54 57
58 * operator ::= "&" | "|" | "1" | "0" 61 * operator ::= "&" | "|" | "1" | "0"
59 */ 62 */
60 typedef struct SyncTagFilter SyncTagFilter; 63 typedef struct SyncTagFilter SyncTagFilter;
61 64
62 struct SyncTagFilter { 65 struct SyncTagFilter {
66 int scope;
63 int mode; 67 int mode;
64 UcxList* tags; 68 UcxList* tags;
65 size_t subfilter_count; 69 size_t subfilter_count;
66 SyncTagFilter** subfilters; 70 SyncTagFilter** subfilters;
67 }; 71 };
83 UcxBuffer* create_macos_taglist(UcxList *tags); 87 UcxBuffer* create_macos_taglist(UcxList *tags);
84 88
85 89
86 /* ----------- ----------- tag filter ---------------------- */ 90 /* ----------- ----------- tag filter ---------------------- */
87 91
88 SyncTagFilter* parse_tagfilter_string(const char* filterstring); 92 SyncTagFilter* parse_tagfilter_string(const char* filterstring, int scope);
89 void free_tagfilter(SyncTagFilter* filter); 93 void free_tagfilter(SyncTagFilter* filter);
90 94
91 int matches_tagfilter(UcxList *dav_tags, SyncTagFilter *tagfilter); 95 int matches_tagfilter(UcxList *dav_tags, SyncTagFilter *tagfilter);
92 96
93 #ifdef __cplusplus 97 #ifdef __cplusplus

mercurial