Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
| Comment: | Fix a corner-case in file_tree_name() - specifically when the input is the name of the root of the local tree, return ".". |
|---|---|
| Downloads: | Tarball | ZIP archive |
| Timelines: | family | ancestors | descendants | both | trunk |
| Files: | files | file ages | folders |
| SHA1: |
f98114c9e45ef0e6eb8bf04eec409745 |
| User & Date: | drh 2010-11-08 19:23:47.000 |
Context
|
2010-11-08
| ||
| 19:31 | Fix an inintiialized variable in the previous check-in. check-in: d8935a89b5 user: drh tags: trunk | |
| 19:23 | Fix a corner-case in file_tree_name() - specifically when the input is the name of the root of the local tree, return ".". check-in: f98114c9e4 user: drh tags: trunk | |
| 19:02 | When the "update" command has a FILES argument which is the top-level directory, that is the same as having no FILES argument at all. In other words, all files are updated. check-in: 2d1a03736a user: drh tags: trunk | |
Changes
Changes to src/file.c.
| ︙ | ︙ | |||
427 428 429 430 431 432 433 434 435 436 |
** false, then simply return 0.
**
** The root of the tree is defined by the g.zLocalRoot variable.
*/
int file_tree_name(const char *zOrigName, Blob *pOut, int errFatal){
int n;
Blob full;
db_must_be_within_tree();
file_canonical_name(zOrigName, &full);
n = strlen(g.zLocalRoot);
| > > > > > > > > > > > > > | | | 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 |
** false, then simply return 0.
**
** The root of the tree is defined by the g.zLocalRoot variable.
*/
int file_tree_name(const char *zOrigName, Blob *pOut, int errFatal){
int n;
Blob full;
int nFull;
char *zFull;
db_must_be_within_tree();
file_canonical_name(zOrigName, &full);
n = strlen(g.zLocalRoot);
assert( n>0 && g.zLocalRoot[n-1]=='/' );
nFull = blob_size(&full);
zFull = blob_buffer(&full);
/* Special case. zOrigName refers to g.zLocalRoot directory. */
if( nFull==n-1 && memcmp(g.zLocalRoot, zFull, nFull)==0 ){
blob_append(pOut, ".", 1);
return 1;
}
if( nFull<=n || memcmp(g.zLocalRoot, zFull, n) ){
blob_reset(&full);
if( errFatal ){
fossil_fatal("file outside of checkout tree: %s", zOrigName);
}
return 0;
}
blob_zero(pOut);
blob_append(pOut, &zFull[n], nFull-n);
return 1;
}
/*
** COMMAND: test-tree-name
**
** Test the operation of the tree name generator.
|
| ︙ | ︙ |