111 int cmd_delete_conflicts(CmdArgs *args); |
111 int cmd_delete_conflicts(CmdArgs *args); |
112 |
112 |
113 int cmd_trash_info(CmdArgs *args); |
113 int cmd_trash_info(CmdArgs *args); |
114 int cmd_empty_trash(CmdArgs *args); |
114 int cmd_empty_trash(CmdArgs *args); |
115 |
115 |
116 /** |
|
117 * filter ::= operator? , (tag_list | ("(" , filter , ")")+) |
|
118 * tag_list ::= tag , ("," tag)* |
|
119 * operator ::= "&" | "|" | "1" | "0" |
|
120 */ |
|
121 typedef struct SyncTagFilter SyncTagFilter; |
|
122 |
|
123 /* OFF must be zero, other constants are arbitrary */ |
|
124 #define DAV_SYNC_TAGFILTER_OFF 0 |
|
125 #define DAV_SYNC_TAGFILTER_AND 1 |
|
126 #define DAV_SYNC_TAGFILTER_OR 2 |
|
127 #define DAV_SYNC_TAGFILTER_ONE 3 |
|
128 #define DAV_SYNC_TAGFILTER_NONE 4 |
|
129 |
|
130 struct SyncTagFilter { |
|
131 int mode; |
|
132 UcxList* tags; |
|
133 size_t subfilter_count; |
|
134 SyncTagFilter** subfilters; |
|
135 }; |
|
136 SyncTagFilter* parse_tagfilter_string(const char* filterstring); |
|
137 void free_tagfilter(SyncTagFilter* filter); |
|
138 |
|
139 int cmd_add_tag(CmdArgs *args); |
116 int cmd_add_tag(CmdArgs *args); |
140 int cmd_remove_tag(CmdArgs *args); |
117 int cmd_remove_tag(CmdArgs *args); |
141 int cmd_set_tags(CmdArgs *args); |
118 int cmd_set_tags(CmdArgs *args); |
142 int cmd_list_tags(CmdArgs *args); |
119 int cmd_list_tags(CmdArgs *args); |
143 int cmd_tagopt(CmdArgs *args, int cmd); |
120 int cmd_tagopt(CmdArgs *args, int cmd); |