@@ -307,10 +307,15 @@
307 307 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
c = 0;
308 308 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
309 309 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return c;
310 310 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
311 311 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
312 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /*
313 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Shorthand for a control-artifact parsing error
314 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ */
315 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define SYNTAX(T) {zErr=(T); goto manifest_syntax_error;}
316 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
312 317 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
313 318 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Parse a blob into a Manifest object. The Manifest object
314 319 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** takes over the input blob and will free it when the
315 320 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Manifest object is freed. Zeros are inserted into the blob
316 321 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** as string terminators so that blob should not be used again.
@@ -334,11 +339,11 @@
334 339 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Each card is divided into tokens by a single space character.
335 340 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** The first token is a single upper-case letter which is the card type.
336 341 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** The card type determines the other parameters to the card.
337 342 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Cards must occur in lexicographical order.
338 343 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
339 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- Manifest *manifest_parse(Blob *pContent, int rid){
344 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Manifest *manifest_parse(Blob *pContent, int rid, Blob *pErr){
340 345 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Manifest *p;
341 346 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int seenZ = 0;
342 347 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int i, lineNo=0;
343 348 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
ManifestText x;
344 349 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
char cPrevType = 0;
@@ -347,10 +352,11 @@
347 352 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int n;
348 353 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
char *zUuid;
349 354 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int sz = 0;
350 355 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int isRepeat;
351 356 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
static Bag seen;
357 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ const char *zErr = 0;
352 358 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
353 359 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( rid==0 ){
354 360 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
isRepeat = 1;
355 361 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else if( bag_find(&seen, rid) ){
356 362 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
isRepeat = 1;
@@ -365,27 +371,30 @@
365 371 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( !isRepeat ) g.parseCnt[0]++;
366 372 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
z = blob_materialize(pContent);
367 373 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
n = blob_size(pContent);
368 374 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( n<=0 || z[n-1]!='\n' ){
369 375 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
blob_reset(pContent);
376 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ blob_appendf(pErr, n ? "not terminated with \\n" : "zero-length");
370 377 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return 0;
371 378 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
372 379 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
373 380 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Strip off the PGP signature if there is one. Then verify the
374 381 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Z-card.
375 382 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
376 383 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
remove_pgp_signature(&z, &n);
377 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( verify_z_card(z, n)==0 ){
384 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( verify_z_card(z, n)==2 ){
378 385 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
blob_reset(pContent);
386 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ blob_appendf(pErr, "incorrect Z-card cksum");
379 387 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return 0;
380 388 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
381 389 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
382 390 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Verify that the first few characters of the artifact look like
383 391 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** a control artifact.
384 392 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
385 393 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( n<10 || z[0]<'A' || z[0]>'Z' || z[1]!=' ' ){
386 394 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
blob_reset(pContent);
395 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ blob_appendf(pErr, "line 1 not recognized");
387 396 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return 0;
388 397 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
389 398 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
390 399 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Allocate a Manifest object to hold the parsed control artifact.
391 400 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
@@ -420,19 +429,19 @@
420 429 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
zSrc = next_token(&x, &nSrc);
421 430 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( zName==0 || zTarget==0 ) goto manifest_syntax_error;
422 431 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( p->zAttachName!=0 ) goto manifest_syntax_error;
423 432 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
defossilize(zName);
424 433 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( !file_is_simple_pathname(zName) ){
425 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- goto manifest_syntax_error;
434 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ SYNTAX("invalid filename on A-card");
426 435 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
427 436 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
defossilize(zTarget);
428 437 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( (nTarget!=UUID_SIZE || !validate16(zTarget, UUID_SIZE))
429 438 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
&& !wiki_name_is_wellformed((const unsigned char *)zTarget) ){
430 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- goto manifest_syntax_error;
439 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ SYNTAX("invalid target on A-card");
431 440 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
432 441 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( zSrc && (nSrc!=UUID_SIZE || !validate16(zSrc, UUID_SIZE)) ){
433 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- goto manifest_syntax_error;
442 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ SYNTAX("invalid source on A-card");
434 443 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
435 444 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
p->zAttachName = (char*)file_tail(zName);
436 445 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
p->zAttachSrc = zSrc;
437 446 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
p->zAttachTarget = zTarget;
438 447 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
@@ -442,15 +451,16 @@
442 451 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** B <uuid>
443 452 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
444 453 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** A B-line gives the UUID for the baselinen of a delta-manifest.
445 454 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
446 455 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case 'B': {
447 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( p->zBaseline ) goto manifest_syntax_error;
456 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( p->zBaseline ) SYNTAX("more than one B-card");
448 457 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
p->zBaseline = next_token(&x, &sz);
449 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( p->zBaseline==0 ) goto manifest_syntax_error;
450 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( sz!=UUID_SIZE ) goto manifest_syntax_error;
451 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( !validate16(p->zBaseline, UUID_SIZE) ) goto manifest_syntax_error;
458 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( p->zBaseline==0 ) SYNTAX("missing UUID on B-card");
459 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( sz!=UUID_SIZE || !validate16(p->zBaseline, UUID_SIZE) ){
460 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ SYNTAX("invalid UUID on B-card");
461 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
452 462 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
453 463 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
454 464 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
455 465 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
456 466 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
@@ -459,13 +469,13 @@
459 469 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Comment text is fossil-encoded. There may be no more than
460 470 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** one C line. C lines are required for manifests and are
461 471 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** disallowed on all other control files.
462 472 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
463 473 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case 'C': {
464 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( p->zComment!=0 ) goto manifest_syntax_error;
474 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( p->zComment!=0 ) SYNTAX("more than one C-card");
465 475 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
p->zComment = next_token(&x, 0);
466 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( p->zComment==0 ) goto manifest_syntax_error;
476 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( p->zComment==0 ) SYNTAX("missing comment text on C-card");
467 477 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
defossilize(p->zComment);
468 478 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
469 479 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
470 480 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
471 481 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
@@ -474,13 +484,13 @@
474 484 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** The timestamp should be ISO 8601. YYYY-MM-DDtHH:MM:SS
475 485 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** There can be no more than 1 D line. D lines are required
476 486 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** for all control files except for clusters.
477 487 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
478 488 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case 'D': {
479 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( p->rDate>0.0 ) goto manifest_syntax_error;
489 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( p->rDate>0.0 ) SYNTAX("more than one D-card");
480 490 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
p->rDate = db_double(0.0, "SELECT julianday(%Q)", next_token(&x,0));
481 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( p->rDate<=0.0 ) goto manifest_syntax_error;
491 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( p->rDate<=0.0 ) SYNTAX("cannot parse date on D-card");
482 492 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
483 493 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
484 494 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
485 495 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
486 496 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** E <timestamp> <uuid>
@@ -490,16 +500,17 @@
490 500 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** The event timestamp is distinct from the D timestamp. The D
491 501 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** timestamp is when the artifact was created whereas the E timestamp
492 502 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** is when the specific event is said to occur.
493 503 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
494 504 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case 'E': {
495 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( p->rEventDate>0.0 ) goto manifest_syntax_error;
505 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( p->rEventDate>0.0 ) SYNTAX("more than one E-card");
496 506 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
p->rEventDate = db_double(0.0,"SELECT julianday(%Q)", next_token(&x,0));
497 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( p->rEventDate<=0.0 ) goto manifest_syntax_error;
507 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( p->rEventDate<=0.0 ) SYNTAX("malformed date on E-card");
498 508 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
p->zEventId = next_token(&x, &sz);
499 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( sz!=UUID_SIZE ) goto manifest_syntax_error;
500 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( !validate16(p->zEventId, UUID_SIZE) ) goto manifest_syntax_error;
509 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( sz!=UUID_SIZE || !validate16(p->zEventId, UUID_SIZE) ){
510 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ SYNTAX("malformed UUID on E-card");
511 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
501 512 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
502 513 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
503 514 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
504 515 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
505 516 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** F <filename> ?<uuid>? ?<permissions>? ?<old-name>?
@@ -509,26 +520,26 @@
509 520 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** other control file. The filename and old-name are fossil-encoded.
510 521 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
511 522 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case 'F': {
512 523 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
char *zName, *zPerm, *zPriorName;
513 524 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
zName = next_token(&x,0);
514 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( zName==0 ) goto manifest_syntax_error;
525 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( zName==0 ) SYNTAX("missing filename on F-card");
515 526 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
defossilize(zName);
516 527 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( !file_is_simple_pathname(zName) ){
517 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- goto manifest_syntax_error;
528 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ SYNTAX("F-card filename is not a simple path");
518 529 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
519 530 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
zUuid = next_token(&x, &sz);
520 531 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( p->zBaseline==0 || zUuid!=0 ){
521 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( sz!=UUID_SIZE ) goto manifest_syntax_error;
522 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( !validate16(zUuid, UUID_SIZE) ) goto manifest_syntax_error;
532 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( sz!=UUID_SIZE ) SYNTAX("F-card UUID is the wrong size");
533 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( !validate16(zUuid, UUID_SIZE) ) SYNTAX("F-card UUID invalid");
523 534 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
524 535 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
zPerm = next_token(&x,0);
525 536 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
zPriorName = next_token(&x,0);
526 537 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( zPriorName ){
527 538 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
defossilize(zPriorName);
528 539 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( !file_is_simple_pathname(zPriorName) ){
529 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- goto manifest_syntax_error;
540 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ SYNTAX("F-card old filename is not a simple path");
530 541 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
531 542 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
532 543 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( p->nFile>=p->nFileAlloc ){
533 544 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
p->nFileAlloc = p->nFileAlloc*2 + 10;
534 545 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
p->aFile = fossil_realloc(p->aFile,
@@ -538,11 +549,11 @@
538 549 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
p->aFile[i].zName = zName;
539 550 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
p->aFile[i].zUuid = zUuid;
540 551 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
p->aFile[i].zPerm = zPerm;
541 552 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
p->aFile[i].zPrior = zPriorName;
542 553 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( i>0 && fossil_strcmp(p->aFile[i-1].zName, zName)>=0 ){
543 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- goto manifest_syntax_error;
554 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ SYNTAX("incorrect F-card sort order");
544 555 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
545 556 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
546 557 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
547 558 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
548 559 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
@@ -555,11 +566,11 @@
555 566 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
556 567 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case 'J': {
557 568 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
char *zName, *zValue;
558 569 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
zName = next_token(&x,0);
559 570 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
zValue = next_token(&x,0);
560 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( zName==0 ) goto manifest_syntax_error;
571 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( zName==0 ) SYNTAX("name missing from J-card");
561 572 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( zValue==0 ) zValue = "";
562 573 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
defossilize(zValue);
563 574 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( p->nField>=p->nFieldAlloc ){
564 575 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
p->nFieldAlloc = p->nFieldAlloc*2 + 10;
565 576 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
p->aField = fossil_realloc(p->aField,
@@ -567,11 +578,11 @@
567 578 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
568 579 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
i = p->nField++;
569 580 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
p->aField[i].zName = zName;
570 581 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
p->aField[i].zValue = zValue;
571 582 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( i>0 && fossil_strcmp(p->aField[i-1].zName, zName)>=0 ){
572 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- goto manifest_syntax_error;
583 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ SYNTAX("incorrect J-card sort order");
573 584 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
574 585 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
575 586 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
576 587 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
577 588 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@@ -580,14 +591,16 @@
580 591 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
581 592 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** A K-line gives the UUID for the ticket which this control file
582 593 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** is amending.
583 594 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
584 595 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case 'K': {
585 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( p->zTicketUuid!=0 ) goto manifest_syntax_error;
596 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( p->zTicketUuid!=0 ) SYNTAX("more than one K-card");
586 597 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
p->zTicketUuid = next_token(&x, &sz);
587 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( sz!=UUID_SIZE ) goto manifest_syntax_error;
588 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( !validate16(p->zTicketUuid, UUID_SIZE) ) goto manifest_syntax_error;
598 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( sz!=UUID_SIZE ) SYNTAX("K-card UUID is the wrong size");
599 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( !validate16(p->zTicketUuid, UUID_SIZE) ){
600 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ SYNTAX("invalid K-card UUID");
601 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
589 602 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
590 603 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
591 604 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
592 605 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
593 606 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** L <wikititle>
@@ -594,16 +607,16 @@
594 607 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
595 608 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** The wiki page title is fossil-encoded. There may be no more than
596 609 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** one L line.
597 610 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
598 611 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case 'L': {
599 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( p->zWikiTitle!=0 ) goto manifest_syntax_error;
612 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( p->zWikiTitle!=0 ) SYNTAX("more than one L-card");
600 613 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
p->zWikiTitle = next_token(&x,0);
601 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( p->zWikiTitle==0 ) goto manifest_syntax_error;
614 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( p->zWikiTitle==0 ) SYNTAX("missing title on L-card");
602 615 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
defossilize(p->zWikiTitle);
603 616 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( !wiki_name_is_wellformed((const unsigned char *)p->zWikiTitle) ){
604 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- goto manifest_syntax_error;
617 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ SYNTAX("L-card has malformed wiki name");
605 618 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
606 619 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
607 620 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
608 621 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
609 622 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
@@ -612,22 +625,22 @@
612 625 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** An M-line identifies another artifact by its UUID. M-lines
613 626 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** occur in clusters only.
614 627 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
615 628 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case 'M': {
616 629 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
zUuid = next_token(&x, &sz);
617 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( zUuid==0 ) goto manifest_syntax_error;
618 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( sz!=UUID_SIZE ) goto manifest_syntax_error;
619 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( !validate16(zUuid, UUID_SIZE) ) goto manifest_syntax_error;
630 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( zUuid==0 ) SYNTAX("missing UUID on M-card");
631 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( sz!=UUID_SIZE ) SYNTAX("wrong size for UUID on M-card");
632 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( !validate16(zUuid, UUID_SIZE) ) SYNTAX("UUID invalid on M-card");
620 633 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( p->nCChild>=p->nCChildAlloc ){
621 634 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
p->nCChildAlloc = p->nCChildAlloc*2 + 10;
622 635 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
p->azCChild = fossil_realloc(p->azCChild
623 636 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
, p->nCChildAlloc*sizeof(p->azCChild[0]) );
624 637 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
625 638 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
i = p->nCChild++;
626 639 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
p->azCChild[i] = zUuid;
627 640 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( i>0 && fossil_strcmp(p->azCChild[i-1], zUuid)>=0 ){
628 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- goto manifest_syntax_error;
641 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ SYNTAX("M-card in the wrong order");
629 642 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
630 643 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
631 644 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
632 645 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
633 646 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
@@ -637,12 +650,12 @@
637 650 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** this artifact. The first parent is the primary parent. All
638 651 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** others are parents by merge.
639 652 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
640 653 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case 'P': {
641 654 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
while( (zUuid = next_token(&x, &sz))!=0 ){
642 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( sz!=UUID_SIZE ) goto manifest_syntax_error;
643 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( !validate16(zUuid, UUID_SIZE) ) goto manifest_syntax_error;
655 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( sz!=UUID_SIZE ) SYNTAX("wrong size UUID on P-card");
656 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( !validate16(zUuid, UUID_SIZE) )SYNTAX("invalid UUID on P-card");
644 657 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( p->nParent>=p->nParentAlloc ){
645 658 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
p->nParentAlloc = p->nParentAlloc*2 + 5;
646 659 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
p->azParent = fossil_realloc(p->azParent,
647 660 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
p->nParentAlloc*sizeof(char*));
648 661 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
@@ -657,23 +670,29 @@
657 670 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
658 671 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Specify one or a range of checkins that are cherrypicked into
659 672 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** this checkin ("+") or backed out of this checkin ("-").
660 673 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
661 674 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case 'Q': {
662 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( (zUuid = next_token(&x, &sz))==0 ) goto manifest_syntax_error;
663 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( sz!=UUID_SIZE+1 ) goto manifest_syntax_error;
664 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( zUuid[0]!='+' && zUuid[0]!='-' ) goto manifest_syntax_error;
665 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( !validate16(&zUuid[1], UUID_SIZE) ) goto manifest_syntax_error;
675 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( (zUuid=next_token(&x, &sz))==0 ) SYNTAX("missing UUID on Q-card");
676 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( sz!=UUID_SIZE+1 ) SYNTAX("wrong size UUID on Q-card");
677 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( zUuid[0]!='+' && zUuid[0]!='-' ){
678 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ SYNTAX("Q-card does not begin with '+' or '-'");
679 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
680 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( !validate16(&zUuid[1], UUID_SIZE) ){
681 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ SYNTAX("invalid UUID on Q-card");
682 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
666 683 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
n = p->nCherrypick;
667 684 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
p->nCherrypick++;
668 685 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
p->aCherrypick = fossil_realloc(p->aCherrypick,
669 686 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
p->nCherrypick*sizeof(p->aCherrypick[0]));
670 687 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
p->aCherrypick[n].zCPTarget = zUuid;
671 688 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
p->aCherrypick[n].zCPBase = zUuid = next_token(&x, &sz);
672 689 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( zUuid ){
673 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( sz!=UUID_SIZE ) goto manifest_syntax_error;
674 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( !validate16(zUuid, UUID_SIZE) ) goto manifest_syntax_error;
690 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( sz!=UUID_SIZE ) SYNTAX("wrong size second UUID in Q-card");
691 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( !validate16(zUuid, UUID_SIZE) ){
692 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ SYNTAX("invalid second UUID on Q-card");
693 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
675 694 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
676 695 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
677 696 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
678 697 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
679 698 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
@@ -681,14 +700,14 @@
681 700 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
682 701 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Specify the MD5 checksum over the name and content of all files
683 702 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** in the manifest.
684 703 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
685 704 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case 'R': {
686 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( p->zRepoCksum!=0 ) goto manifest_syntax_error;
705 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( p->zRepoCksum!=0 ) SYNTAX("more than on R-card");
687 706 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
p->zRepoCksum = next_token(&x, &sz);
688 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( sz!=32 ) goto manifest_syntax_error;
689 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( !validate16(p->zRepoCksum, 32) ) goto manifest_syntax_error;
707 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( sz!=32 ) SYNTAX("wrong size cksum on R-card");
708 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( !validate16(p->zRepoCksum, 32) ) SYNTAX("malformed R-card cksum");
690 709 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
691 710 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
692 711 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
693 712 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
694 713 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** T (+|*|-)<tagname> <uuid> ?<value>?
@@ -706,29 +725,29 @@
706 725 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Tags are not allowed in clusters. Multiple T lines are allowed.
707 726 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
708 727 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case 'T': {
709 728 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
char *zName, *zValue;
710 729 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
zName = next_token(&x, 0);
711 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( zName==0 ) goto manifest_syntax_error;
730 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( zName==0 ) SYNTAX("missing name on T-card");
712 731 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
zUuid = next_token(&x, &sz);
713 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( zUuid==0 ) goto manifest_syntax_error;
732 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( zUuid==0 ) SYNTAX("missing UUID on T-card");
714 733 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
zValue = next_token(&x, 0);
715 734 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( zValue ) defossilize(zValue);
716 735 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( sz==UUID_SIZE && validate16(zUuid, UUID_SIZE) ){
717 736 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* A valid uuid */
718 737 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else if( sz==1 && zUuid[0]=='*' ){
719 738 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
zUuid = 0;
720 739 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else{
721 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- goto manifest_syntax_error;
740 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ SYNTAX("malformed UUID on T-card");
722 741 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
723 742 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
defossilize(zName);
724 743 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( zName[0]!='-' && zName[0]!='+' && zName[0]!='*' ){
725 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- goto manifest_syntax_error;
744 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ SYNTAX("T-card name does not begin with '-', '+', or '*'");
726 745 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
727 746 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( validate16(&zName[1], strlen(&zName[1])) ){
728 747 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Do not allow tags whose names look like UUIDs */
729 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- goto manifest_syntax_error;
748 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ SYNTAX("T-card name looks like a UUID");
730 749 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
731 750 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( p->nTag>=p->nTagAlloc ){
732 751 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
p->nTagAlloc = p->nTagAlloc*2 + 10;
733 752 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
p->aTag = fossil_realloc(p->aTag, p->nTagAlloc*sizeof(p->aTag[0]) );
734 753 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
@@ -735,11 +754,11 @@
735 754 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
i = p->nTag++;
736 755 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
p->aTag[i].zName = zName;
737 756 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
p->aTag[i].zUuid = zUuid;
738 757 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
p->aTag[i].zValue = zValue;
739 758 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( i>0 && fossil_strcmp(p->aTag[i-1].zName, zName)>=0 ){
740 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- goto manifest_syntax_error;
759 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ SYNTAX("T-card in the wrong order");
741 760 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
742 761 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
743 762 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
744 763 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
745 764 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
@@ -748,11 +767,11 @@
748 767 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Identify the user who created this control file by their
749 768 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** login. Only one U line is allowed. Prohibited in clusters.
750 769 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** If the user name is omitted, take that to be "anonymous".
751 770 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
752 771 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case 'U': {
753 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( p->zUser!=0 ) goto manifest_syntax_error;
772 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( p->zUser!=0 ) SYNTAX("more than on U-card");
754 773 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
p->zUser = next_token(&x, 0);
755 774 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( p->zUser==0 ){
756 775 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
p->zUser = "anonymous";
757 776 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else{
758 777 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
defossilize(p->zUser);
@@ -767,25 +786,26 @@
767 786 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** page. There is always an extra \n before the start of the next
768 787 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** record.
769 788 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
770 789 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case 'W': {
771 790 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
char *zSize;
772 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- int size, c;
791 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ unsigned size, oldsize, c;
773 792 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Blob wiki;
774 793 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
zSize = next_token(&x, 0);
775 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( zSize==0 ) goto manifest_syntax_error;
776 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( x.atEol==0 ) goto manifest_syntax_error;
777 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- for(size=0; (c = zSize[0])>='0' && c<='9'; zSize++){
778 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- size = size*10 + c - '0';
794 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( zSize==0 ) SYNTAX("missing size on W-card");
795 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( x.atEol==0 ) SYNTAX("no content after W-card");
796 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ for(oldsize=size=0; (c = zSize[0])>='0' && c<='9'; zSize++){
797 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ size = oldsize*10 + c - '0';
798 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( size<oldsize ) SYNTAX("size overflow on W-card");
799 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ oldsize = size;
779 800 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
780 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( size<0 ) goto manifest_syntax_error;
781 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( p->zWiki!=0 ) goto manifest_syntax_error;
801 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( p->zWiki!=0 ) SYNTAX("more than one W-card");
782 802 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
blob_zero(&wiki);
783 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( (&x.z[size+1])>=x.zEnd ) goto manifest_syntax_error;
803 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( (&x.z[size+1])>=x.zEnd )SYNTAX("not enough content after W-card");
784 804 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
p->zWiki = x.z;
785 805 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
x.z += size;
786 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( x.z[0]!='\n' ) goto manifest_syntax_error;
806 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( x.z[0]!='\n' ) SYNTAX("W-card content no \\n terminated");
787 807 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
x.z[0] = 0;
788 808 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
x.z++;
789 809 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
790 810 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
791 811 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@@ -801,111 +821,117 @@
801 821 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Manifest. It is not required for manifest only for historical
802 822 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** compatibility reasons.
803 823 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
804 824 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case 'Z': {
805 825 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
zUuid = next_token(&x, &sz);
806 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( sz!=32 ) goto manifest_syntax_error;
807 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( !validate16(zUuid, 32) ) goto manifest_syntax_error;
826 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( sz!=32 ) SYNTAX("wrong size for Z-card cksum");
827 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( !validate16(zUuid, 32) ) SYNTAX("malformed Z-card cksum");
808 828 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
seenZ = 1;
809 829 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
810 830 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
811 831 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
default: {
812 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- goto manifest_syntax_error;
832 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ SYNTAX("unrecognized card");
813 833 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
814 834 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
815 835 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
816 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( x.z<x.zEnd ) goto manifest_syntax_error;
836 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( x.z<x.zEnd ) SYNTAX("card in the wrong order");
817 837 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
818 838 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( p->nFile>0 || p->zRepoCksum!=0 || p->zBaseline ){
819 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( p->nCChild>0 ) goto manifest_syntax_error;
820 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( p->rDate<=0.0 ) goto manifest_syntax_error;
821 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( p->nField>0 ) goto manifest_syntax_error;
822 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( p->zTicketUuid ) goto manifest_syntax_error;
823 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( p->zWiki ) goto manifest_syntax_error;
824 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( p->zWikiTitle ) goto manifest_syntax_error;
825 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( p->zEventId ) goto manifest_syntax_error;
826 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( p->zTicketUuid ) goto manifest_syntax_error;
827 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( p->zAttachName ) goto manifest_syntax_error;
839 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( p->nCChild>0 ) SYNTAX("M-card in check-in");
840 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( p->rDate<=0.0 ) SYNTAX("missing date for check-in");
841 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( p->nField>0 ) SYNTAX("J-card in check-in");
842 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( p->zTicketUuid ) SYNTAX("K-card in check-in");
843 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( p->zWiki ) SYNTAX("W-card in check-in");
844 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( p->zWikiTitle ) SYNTAX("L-card in check-in");
845 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( p->zEventId ) SYNTAX("E-card in check-in");
846 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( p->zTicketUuid ) SYNTAX("K-card in check-in");
847 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( p->zAttachName ) SYNTAX("A-card in check-in");
828 848 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
p->type = CFTYPE_MANIFEST;
829 849 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else if( p->nCChild>0 ){
830 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( p->rDate>0.0 ) goto manifest_syntax_error;
831 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( p->zComment!=0 ) goto manifest_syntax_error;
832 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( p->zUser!=0 ) goto manifest_syntax_error;
833 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( p->nTag>0 ) goto manifest_syntax_error;
834 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( p->nParent>0 ) goto manifest_syntax_error;
835 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( p->nField>0 ) goto manifest_syntax_error;
836 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( p->zTicketUuid ) goto manifest_syntax_error;
837 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( p->zWiki ) goto manifest_syntax_error;
838 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( p->zWikiTitle ) goto manifest_syntax_error;
839 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( p->zEventId ) goto manifest_syntax_error;
840 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( p->zAttachName ) goto manifest_syntax_error;
841 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( !seenZ ) goto manifest_syntax_error;
850 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( p->rDate>0.0
851 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ || p->zComment!=0
852 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ || p->zUser!=0
853 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ || p->nTag>0
854 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ || p->nParent>0
855 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ || p->nField>0
856 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ || p->zTicketUuid
857 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ || p->zWiki
858 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ || p->zWikiTitle
859 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ || p->zEventId
860 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ || p->zAttachName
861 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ){
862 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ SYNTAX("cluster contains a card other than M- or Z-");
863 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
864 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( !seenZ ) SYNTAX("missing Z-card on cluster");
842 865 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
p->type = CFTYPE_CLUSTER;
843 866 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else if( p->nField>0 ){
844 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( p->rDate<=0.0 ) goto manifest_syntax_error;
845 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( p->zWiki ) goto manifest_syntax_error;
846 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( p->zWikiTitle ) goto manifest_syntax_error;
847 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( p->zEventId ) goto manifest_syntax_error;
848 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( p->nCChild>0 ) goto manifest_syntax_error;
849 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( p->nTag>0 ) goto manifest_syntax_error;
850 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( p->zTicketUuid==0 ) goto manifest_syntax_error;
851 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( p->zUser==0 ) goto manifest_syntax_error;
852 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( p->zAttachName ) goto manifest_syntax_error;
853 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( !seenZ ) goto manifest_syntax_error;
867 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( p->rDate<=0.0 ) SYNTAX("missing date for ticket");
868 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( p->zWiki ) SYNTAX("W-card in ticket");
869 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( p->zWikiTitle ) SYNTAX("L-card in ticket");
870 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( p->zEventId ) SYNTAX("E-card in ticket");
871 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( p->nCChild>0 ) SYNTAX("M-card in ticket");
872 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( p->nTag>0 ) SYNTAX("T-card in ticket");
873 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( p->zTicketUuid==0 ) SYNTAX("missing K-card in ticket");
874 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( p->zUser==0 ) SYNTAX("missing U-card in ticket");
875 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( p->zAttachName ) SYNTAX("A-card in ticket");
876 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( !seenZ ) SYNTAX("missing Z-card in ticket");
854 877 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
p->type = CFTYPE_TICKET;
855 878 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else if( p->zEventId ){
856 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( p->rDate<=0.0 ) goto manifest_syntax_error;
857 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( p->nCChild>0 ) goto manifest_syntax_error;
858 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( p->zTicketUuid!=0 ) goto manifest_syntax_error;
859 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( p->zWikiTitle!=0 ) goto manifest_syntax_error;
860 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( p->zWiki==0 ) goto manifest_syntax_error;
861 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( p->zAttachName ) goto manifest_syntax_error;
879 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( p->rDate<=0.0 ) SYNTAX("missing date for event");
880 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( p->nCChild>0 ) SYNTAX("M-card in event");
881 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( p->zTicketUuid!=0 ) SYNTAX("K-card in event");
882 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( p->zWikiTitle!=0 ) SYNTAX("L-card in event");
883 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( p->zWiki==0 ) SYNTAX("W-card in event");
884 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( p->zAttachName ) SYNTAX("A-card in event");
862 885 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
for(i=0; i<p->nTag; i++){
863 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( p->aTag[i].zName[0]!='+' ) goto manifest_syntax_error;
864 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( p->aTag[i].zUuid!=0 ) goto manifest_syntax_error;
886 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( p->aTag[i].zName[0]!='+' ) SYNTAX("propagating tag in event");
887 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( p->aTag[i].zUuid!=0 ) SYNTAX("non-self-referential tag in event");
865 888 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
866 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( !seenZ ) goto manifest_syntax_error;
889 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( !seenZ ) SYNTAX("Z-card missing in event");
867 890 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
p->type = CFTYPE_EVENT;
868 891 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else if( p->zWiki!=0 ){
869 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( p->rDate<=0.0 ) goto manifest_syntax_error;
870 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( p->nCChild>0 ) goto manifest_syntax_error;
871 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( p->nTag>0 ) goto manifest_syntax_error;
872 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( p->zTicketUuid!=0 ) goto manifest_syntax_error;
873 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( p->zWikiTitle==0 ) goto manifest_syntax_error;
874 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( p->zAttachName ) goto manifest_syntax_error;
875 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( !seenZ ) goto manifest_syntax_error;
892 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( p->rDate<=0.0 ) SYNTAX("date missing on wiki");
893 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( p->nCChild>0 ) SYNTAX("M-card in wiki");
894 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( p->nTag>0 ) SYNTAX("T-card in wiki");
895 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( p->zTicketUuid!=0 ) SYNTAX("K-card in wiki");
896 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( p->zWikiTitle==0 ) SYNTAX("L-card in wiki");
897 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( p->zAttachName ) SYNTAX("A-card in wiki");
898 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( !seenZ ) SYNTAX("missing Z-card on wiki");
876 899 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
p->type = CFTYPE_WIKI;
877 900 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else if( p->nTag>0 ){
878 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( p->rDate<=0.0 ) goto manifest_syntax_error;
879 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( p->nParent>0 ) goto manifest_syntax_error;
880 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( p->zWikiTitle ) goto manifest_syntax_error;
881 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( p->zTicketUuid ) goto manifest_syntax_error;
882 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( p->zAttachName ) goto manifest_syntax_error;
883 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( !seenZ ) goto manifest_syntax_error;
901 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( p->rDate<=0.0 ) SYNTAX("date missing on tag");
902 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( p->nParent>0 ) SYNTAX("P-card on tag");
903 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( p->zWikiTitle ) SYNTAX("L-card on tag");
904 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( p->zTicketUuid ) SYNTAX("K-card in tag");
905 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( p->zAttachName ) SYNTAX("A-card in tag");
906 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( !seenZ ) SYNTAX("missing Z-card on tag");
884 907 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
p->type = CFTYPE_CONTROL;
885 908 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else if( p->zAttachName ){
886 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( p->nCChild>0 ) goto manifest_syntax_error;
887 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( p->rDate<=0.0 ) goto manifest_syntax_error;
888 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( p->zTicketUuid ) goto manifest_syntax_error;
889 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( p->zWikiTitle ) goto manifest_syntax_error;
890 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( !seenZ ) goto manifest_syntax_error;
909 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( p->nCChild>0 ) SYNTAX("M-card in attachment");
910 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( p->rDate<=0.0 ) SYNTAX("missing date in attachment");
911 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( p->zTicketUuid ) SYNTAX("K-card in attachment");
912 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( p->zWikiTitle ) SYNTAX("L-card in attachment");
913 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( !seenZ ) SYNTAX("missing Z-card on attachment");
891 914 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
p->type = CFTYPE_ATTACHMENT;
892 915 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else{
893 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( p->nCChild>0 ) goto manifest_syntax_error;
894 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( p->rDate<=0.0 ) goto manifest_syntax_error;
895 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( p->nField>0 ) goto manifest_syntax_error;
896 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( p->zTicketUuid ) goto manifest_syntax_error;
897 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( p->zWikiTitle ) goto manifest_syntax_error;
898 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( p->zTicketUuid ) goto manifest_syntax_error;
916 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( p->nCChild>0 ) SYNTAX("M-card in check-in");
917 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( p->rDate<=0.0 ) SYNTAX("missing date in check-in");
918 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( p->nField>0 ) SYNTAX("J-card in check-in");
919 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( p->zTicketUuid ) SYNTAX("K-card in check-in");
920 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( p->zWikiTitle ) SYNTAX("L-card in check-in");
899 921 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
p->type = CFTYPE_MANIFEST;
900 922 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
901 923 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
md5sum_init();
902 924 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( !isRepeat ) g.parseCnt[p->type]++;
903 925 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return p;
904 926 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
905 927 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
manifest_syntax_error:
906 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /*fprintf(stderr, "Manifest error on line %i\n", lineNo);fflush(stderr);*/
928 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( zErr ){
929 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ blob_appendf(pErr, "line %d: %s", lineNo, zErr);
930 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else{
931 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ blob_appendf(pErr, "unknown error on line %d", lineNo);
932 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
907 933 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
md5sum_init();
908 934 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
manifest_destroy(p);
909 935 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return 0;
910 936 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
911 937 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@@ -924,11 +950,11 @@
924 950 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
p = 0;
925 951 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
926 952 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return p;
927 953 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
928 954 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
content_get(rid, &content);
929 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- p = manifest_parse(&content, rid);
955 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ p = manifest_parse(&content, rid, 0);
930 956 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( p && cfType!=CFTYPE_ANY && cfType!=p->type ){
931 957 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
manifest_destroy(p);
932 958 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
p = 0;
933 959 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
934 960 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return p;
@@ -972,13 +998,16 @@
972 998 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
973 999 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
blob_read_from_file(&b, g.argv[2]);
974 1000 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( g.argc>3 ) n = atoi(g.argv[3]);
975 1001 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
for(i=0; i<n; i++){
976 1002 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Blob b2;
1003 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Blob err;
977 1004 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
blob_copy(&b2, &b);
978 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- p = manifest_parse(&b2, 0);
979 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( p==0 ) fossil_print("FAILED!\n");
1005 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ blob_zero(&err);
1006 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ p = manifest_parse(&b2, 0, &err);
1007 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( p==0 ) fossil_print("ERROR: %s\n", blob_str(&err));
1008 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ blob_reset(&err);
980 1009 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
manifest_destroy(p);
981 1010 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
982 1011 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
983 1012 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
984 1013 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
@@ -1299,11 +1328,11 @@
1299 1328 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
otherRid = cid;
1300 1329 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
1301 1330 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( (*ppOther = manifest_cache_find(otherRid))==0 ){
1302 1331 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
content_get(otherRid, &otherContent);
1303 1332 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( blob_size(&otherContent)==0 ) return;
1304 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- *ppOther = manifest_parse(&otherContent, otherRid);
1333 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ *ppOther = manifest_parse(&otherContent, otherRid, 0);
1305 1334 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( *ppOther==0 ) return;
1306 1335 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
1307 1336 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( fetch_baseline(pParent, 0) || fetch_baseline(pChild, 0) ){
1308 1337 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
manifest_destroy(*ppOther);
1309 1338 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return;
@@ -1597,11 +1626,11 @@
1597 1626 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Stmt q;
1598 1627 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int parentid = 0;
1599 1628 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
1600 1629 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( (p = manifest_cache_find(rid))!=0 ){
1601 1630 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
blob_reset(pContent);
1602 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }else if( (p = manifest_parse(pContent, rid))==0 ){
1631 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else if( (p = manifest_parse(pContent, rid, 0))==0 ){
1603 1632 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( blob_is_reset(pContent) || pContent==0 );
1604 1633 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return 0;
1605 1634 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
1606 1635 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( g.xlinkClusterOnly && p->type!=CFTYPE_CLUSTER ){
1607 1636 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
manifest_destroy(p);
1608 1637 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!