@@ -1463,12 +1463,16 @@
1463 1463 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
1464 1464 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Construct a random temporary filename into pBuf where the name of
1465 1465 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** the temporary file is derived from zBasis. The suffix on the temp
1466 1466 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** file is the same as the suffix on zBasis, and the temp file has
1467 1467 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** the root of zBasis in its name.
1468 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
1469 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** If zTag is not NULL, then try to create the temp-file using zTag
1470 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** as a differentiator. If that fails, or if zTag is NULL, then use
1471 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** a bunch of random characters as the tag.
1468 1472 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
1469 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- void file_tempname(Blob *pBuf, const char *zBasis){
1473 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ void file_tempname(Blob *pBuf, const char *zBasis, const char *zTag){
1470 1474 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#if defined(_WIN32)
1471 1475 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const char *azDirs[] = {
1472 1476 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
0, /* GetTempPath */
1473 1477 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
0, /* TEMP */
1474 1478 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
0, /* TMP */
@@ -1541,16 +1545,20 @@
1541 1545 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
zBasis = "fossil";
1542 1546 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
1543 1547 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
do{
1544 1548 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
blob_zero(pBuf);
1545 1549 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( cnt++>20 ) fossil_panic("cannot generate a temporary filename");
1546 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3_randomness(15, zRand);
1547 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- for(i=0; i<15; i++){
1548 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- zRand[i] = (char)zChars[ ((unsigned char)zRand[i])%(sizeof(zChars)-1) ];
1550 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( zTag==0 ){
1551 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3_randomness(15, zRand);
1552 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ for(i=0; i<15; i++){
1553 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ zRand[i] = (char)zChars[ ((unsigned char)zRand[i])%(sizeof(zChars)-1) ];
1554 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
1555 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ zRand[15] = 0;
1556 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ zTag = zRand;
1549 1557 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
1550 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- zRand[15] = 0;
1551 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- blob_appendf(pBuf, "%s/%.*s~%s%s", zDir, nBasis, zBasis, zRand, zSuffix);
1558 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ blob_appendf(pBuf, "%s/%.*s~%s%s", zDir, nBasis, zBasis, zTag, zSuffix);
1559 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ zTag = 0;
1552 1560 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}while( file_size(blob_str(pBuf), ExtFILE)>=0 );
1553 1561 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
1554 1562 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#if defined(_WIN32)
1555 1563 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
fossil_path_free((char *)azDirs[0]);
1556 1564 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
fossil_path_free((char *)azDirs[1]);
@@ -1582,28 +1590,30 @@
1582 1590 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
1583 1591 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
1584 1592 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
1585 1593 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
1586 1594 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** COMMAND: test-tempname
1587 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** Usage: fossil test-name [--time SUFFIX] BASENAME ...
1595 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Usage: fossil test-name [--time SUFFIX] [--tag NAME] BASENAME ...
1588 1596 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
1589 1597 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Generate temporary filenames derived from BASENAME. Use the --time
1590 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** option to generate temp names based on the time of day.
1598 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** option to generate temp names based on the time of day. If --tag NAME
1599 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** is specified, try to use NAME as the differentiator in the temp file.
1591 1600 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
1592 1601 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
void file_test_tempname(void){
1593 1602 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int i;
1594 1603 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const char *zSuffix = find_option("time",0,1);
1595 1604 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Blob x = BLOB_INITIALIZER;
1596 1605 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
char *z;
1606 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ const char *zTag = find_option("tag",0,1);
1597 1607 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
verify_all_options();
1598 1608 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
for(i=2; i<g.argc; i++){
1599 1609 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( zSuffix ){
1600 1610 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
z = file_time_tempname(g.argv[i], zSuffix);
1601 1611 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
fossil_print("%s\n", z);
1602 1612 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
fossil_free(z);
1603 1613 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else{
1604 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- file_tempname(&x, g.argv[i]);
1614 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ file_tempname(&x, g.argv[i], zTag);
1605 1615 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
fossil_print("%s\n", blob_str(&x));
1606 1616 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
blob_reset(&x);
1607 1617 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
1608 1618 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
1609 1619 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
1610 1620 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!