diff -r fe855ce911f9 -r 26998dc980f9 dav/sync.h --- a/dav/sync.h Wed May 30 12:10:58 2018 +0200 +++ b/dav/sync.h Wed May 30 16:06:03 2018 +0200 @@ -111,9 +111,24 @@ int cmd_trash_info(CmdArgs *args); int cmd_empty_trash(CmdArgs *args); -typedef struct { +/** + * filter ::= tag_list | (operator , ("(" , filter , ")")*) + * tag_list ::= tag , ("," tag)* + * operator ::= "&" | "|" | "1" | "0" + */ +typedef struct SyncTagFilter SyncTagFilter; + +#define DAV_SYNC_TAGFILTER_AND 1 +#define DAV_SYNC_TAGFILTER_OR 2 +#define DAV_SYNC_TAGFILTER_ONE 3 +#define DAV_SYNC_TAGFILTER_NONE 4 + +struct SyncTagFilter { + int mode; UcxList* tags; -} SyncTagFilter; + size_t subfilter_count; + SyncTagFilter* subfilters; +}; int cmd_add_tag(CmdArgs *args); int cmd_remove_tag(CmdArgs *args);