@@ -42,11 +42,11 @@
42 42 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int addFlag, /* True to add the tag. False to delete it. */
43 43 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const char *zValue, /* Value of the tag. Might be NULL */
44 44 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
double mtime /* Timestamp on the tag */
45 45 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
){
46 46 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
PQueue queue;
47 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- Stmt s, ins;
47 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Stmt s, ins, eventupdate;
48 48 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pqueue_init(&queue);
49 49 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pqueue_insert(&queue, pid, 0.0);
50 50 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
db_prepare(&s,
51 51 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
"SELECT cid, plink.mtime,"
52 52 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
" coalesce(srcid=0 AND tagxref.mtime<:mtime, %d) AS doit"
@@ -61,13 +61,19 @@
61 61 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
"VALUES(%d,1,0,%Q,:mtime,:rid)",
62 62 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
tagid, zValue
63 63 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
);
64 64 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
db_bind_double(&ins, ":mtime", mtime);
65 65 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else{
66 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ zValue = 0;
66 67 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
db_prepare(&ins,
67 68 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
"DELETE FROM tagxref WHERE tagid=%d AND rid=:rid", tagid
68 69 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
);
70 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
71 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( tagid==TAG_BR_BGCOLOR ){
72 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ db_prepare(&eventupdate,
73 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ "UPDATE event SET brbgcolor=%Q WHERE objid=:rid", zValue
74 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ );
69 75 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
70 76 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
while( (pid = pqueue_extract(&queue))!=0 ){
71 77 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
db_bind_int(&s, ":pid", pid);
72 78 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
while( db_step(&s)==SQLITE_ROW ){
73 79 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int doit = db_column_int(&s, 2);
@@ -76,17 +82,25 @@
76 82 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
double mtime = db_column_double(&s, 1);
77 83 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pqueue_insert(&queue, cid, mtime);
78 84 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
db_bind_int(&ins, ":rid", cid);
79 85 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
db_step(&ins);
80 86 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
db_reset(&ins);
87 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( tagid==TAG_BR_BGCOLOR ){
88 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ db_bind_int(&eventupdate, ":rid", cid);
89 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ db_step(&eventupdate);
90 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ db_reset(&eventupdate);
91 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
81 92 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
82 93 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
83 94 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
db_reset(&s);
84 95 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
85 96 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pqueue_clear(&queue);
86 97 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
db_finalize(&ins);
87 98 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
db_finalize(&s);
99 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( tagid==TAG_BR_BGCOLOR ){
100 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ db_finalize(&eventupdate);
101 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
88 102 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
89 103 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
90 104 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
91 105 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Propagate all propagatable tags in pid to its children.
92 106 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
@@ -144,12 +158,33 @@
144 158 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
tagid, addFlag, srcId, zValue, rid
145 159 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
);
146 160 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
db_bind_double(&s, ":mtime", mtime);
147 161 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
db_step(&s);
148 162 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
db_finalize(&s);
163 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( addFlag==0 ){
164 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ zValue = 0;
165 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
166 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ switch( tagid ){
167 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case TAG_BGCOLOR: {
168 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ db_multi_exec("UPDATE event SET bgcolor=%Q WHERE objid=%d", zValue, rid);
169 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ break;
170 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
171 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case TAG_BR_BGCOLOR: {
172 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ db_multi_exec("UPDATE event SET brbgcolor=%Q WHERE objid=%d", zValue,rid);
173 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ break;
174 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
175 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case TAG_COMMENT: {
176 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ db_multi_exec("UPDATE event SET ecomment=%Q WHERE objid=%d", zValue, rid);
177 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ break;
178 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
179 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case TAG_USER: {
180 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ db_multi_exec("UPDATE event SET euser=%Q WHERE objid=%d", zValue, rid);
181 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ break;
182 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
183 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
149 184 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( strncmp(zTag, "br", 2)==0 ){
150 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- tag_propagate(rid, tagid, 1, zValue, mtime);
185 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ tag_propagate(rid, tagid, addFlag, zValue, mtime);
151 186 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
152 187 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
153 188 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
154 189 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
155 190 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
@@ -202,5 +237,164 @@
202 237 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
203 238 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
db_begin_transaction();
204 239 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
tag_insert(zTag, 0, 0, -1, 0.0, rid);
205 240 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
db_end_transaction(0);
206 241 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
242 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
243 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /*
244 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Add a control record to the repository that either creates
245 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** or cancels a tag.
246 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ */
247 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ static void tag_add_artifact(
248 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ const char *zTagname, /* The tag to add or cancel */
249 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ const char *zObjName, /* Name of object attached to */
250 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ const char *zValue, /* Value for the tag. Might be NULL */
251 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int addFlag /* True to add. false to cancel */
252 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ){
253 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int rid;
254 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int nrid;
255 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ char *zDate;
256 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Blob uuid;
257 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Blob ctrl;
258 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Blob cksum;
259 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
260 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ user_select();
261 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ rid = name_to_rid(zObjName);
262 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ blob_zero(&uuid);
263 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ db_blob(&uuid, "SELECT uuid FROM blob WHERE rid=%d", rid);
264 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ blob_zero(&ctrl);
265 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
266 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( validate16(zTagname, strlen(zTagname)) ){
267 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ fossil_fatal("invalid tag name \"%s\" - might be confused with a UUID",
268 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ zTagname);
269 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
270 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ zDate = db_text(0, "SELECT datetime('now')");
271 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ zDate[10] = 'T';
272 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ blob_appendf(&ctrl, "D %s\n", zDate);
273 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ blob_appendf(&ctrl, "T %c%F %b", addFlag ? '+' : '-', zTagname, &uuid);
274 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( addFlag && zValue && zValue[0] ){
275 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ blob_appendf(&ctrl, " %F\n", zValue);
276 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else{
277 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ blob_appendf(&ctrl, "\n");
278 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
279 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ blob_appendf(&ctrl, "U %F\n", g.zLogin);
280 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ md5sum_blob(&ctrl, &cksum);
281 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ blob_appendf(&ctrl, "Z %b\n", &cksum);
282 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ db_begin_transaction();
283 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ nrid = content_put(&ctrl, 0, 0);
284 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ manifest_crosslink(nrid, &ctrl);
285 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ db_end_transaction(0);
286 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
287 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
288 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /*
289 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** COMMAND: tag
290 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Usage: %fossil tag SUBCOMMAND ...
291 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
292 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Run various subcommands to control tags and properties
293 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
294 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** %fossil tag add TAGNAME UUID ?VALUE?
295 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
296 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Add a new tag or property to UUID.
297 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
298 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** %fossil tag delete TAGNAME UUID
299 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
300 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Delete the tag TAGNAME from UUID
301 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
302 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** %fossil tag find TAGNAME
303 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
304 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** List all baselines that use TAGNAME
305 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
306 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** %fossil tag list ?UUID?
307 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
308 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** List all tags, or if UUID is supplied, list
309 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** all tags and their values for UUID.
310 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ */
311 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ void tag_cmd(void){
312 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int n;
313 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ db_find_and_open_repository();
314 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( g.argc<3 ){
315 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ goto tag_cmd_usage;
316 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
317 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ n = strlen(g.argv[2]);
318 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( n==0 ){
319 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ goto tag_cmd_usage;
320 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
321 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
322 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( strncmp(g.argv[2],"add",n)==0 ){
323 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ char *zValue;
324 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( g.argc!=5 && g.argc!=6 ){
325 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ usage("tag add TAGNAME UUID ?VALUE?");
326 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
327 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ zValue = g.argc==6 ? g.argv[5] : 0;
328 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ tag_add_artifact(g.argv[3], g.argv[4], zValue, 1);
329 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else
330 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
331 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( strncmp(g.argv[2],"delete",n)==0 ){
332 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( g.argc!=5 ){
333 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ usage("tag delete TAGNAME UUID");
334 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
335 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ tag_add_artifact(g.argv[3], g.argv[4], 0, 0);
336 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else
337 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
338 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( strncmp(g.argv[2],"find",n)==0 ){
339 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Stmt q;
340 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( g.argc!=4 ){
341 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ usage("tag find TAGNAME");
342 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
343 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ db_prepare(&q,
344 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ "SELECT blob.uuid FROM tagxref, blob"
345 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ " WHERE tagid=(SELECT tagid FROM tag WHERE tagname=%Q)"
346 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ " AND blob.rid=tagxref.rid", g.argv[3]
347 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ );
348 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ while( db_step(&q)==SQLITE_ROW ){
349 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ printf("%s\n", db_column_text(&q, 0));
350 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
351 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ db_finalize(&q);
352 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else
353 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
354 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( strncmp(g.argv[2],"list",n)==0 ){
355 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Stmt q;
356 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( g.argc==3 ){
357 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ db_prepare(&q,
358 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ "SELECT tagname"
359 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ " FROM tag"
360 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ " WHERE EXISTS(SELECT 1 FROM tagxref"
361 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ " WHERE tagid=tag.tagid"
362 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ " AND addflag)"
363 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ " ORDER BY tagname"
364 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ );
365 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ while( db_step(&q)==SQLITE_ROW ){
366 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ printf("%s\n", db_column_text(&q, 0));
367 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
368 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ db_finalize(&q);
369 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else if( g.argc==4 ){
370 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int rid = name_to_rid(g.argv[3]);
371 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ db_prepare(&q,
372 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ "SELECT tagname, value"
373 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ " FROM tagxref, tag"
374 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ " WHERE tagxref.rid=%d AND tagxref.tagid=tag.tagid"
375 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ " AND addflag"
376 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ " ORDER BY tagname",
377 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ rid
378 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ );
379 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ while( db_step(&q)==SQLITE_ROW ){
380 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ const char *zName = db_column_text(&q, 0);
381 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ const char *zValue = db_column_text(&q, 1);
382 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( zValue ){
383 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ printf("%s=%s\n", zName, zValue);
384 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else{
385 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ printf("%s\n", zName);
386 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
387 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
388 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ db_finalize(&q);
389 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else{
390 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ usage("tag list ?UUID?");
391 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
392 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else
393 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ {
394 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ goto tag_cmd_usage;
395 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
396 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ return;
397 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
398 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ tag_cmd_usage:
399 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ usage("add|delete|find|list ...");
400 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
207 401 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!