Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Minor code clean-ups: (1) shorten lines to less than 80 characters (2) remove C99-isms, especially intermixed code and declarations. Also merge in the moved file display fix from the trunk. |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | ben-testing |
Files: | files | file ages | folders |
SHA1: |
a164b63a67369c4285d68efc0505f5aa |
User & Date: | drh 2011-06-02 23:45:48 |
Context
2011-06-05
| ||
08:46 | Add ssl-ca-location setting to specify file/directory to pass to OpenSSL as the server CA location. This allows specification of CAs properly on platforms without usable centralised CA certificate lists, or management by external programs. Add note to certificate warning about this setting, and stronger instructions about what to do if the server certificate could not be verified. check-in: 636cc595e1 user: ben tags: ben-testing | |
2011-06-02
| ||
23:45 | Minor code clean-ups: (1) shorten lines to less than 80 characters (2) remove C99-isms, especially intermixed code and declarations. Also merge in the moved file display fix from the trunk. check-in: a164b63a67 user: drh tags: ben-testing | |
20:49 | Improved handling of check-in diff display when files have changed names but are otherwise unmodified. Requires a rebuild to get the display exactly right since the MLINK table needs to be recomputed. check-in: 067cda2645 user: drh tags: trunk | |
19:38 | Merge versionable settings and empty-dirs setting from versionable-settings branch check-in: 30ebed1903 user: ben tags: ben-testing | |
Changes
Changes to src/db.c.
︙ | ︙ | |||
1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 | g.db = g.dbConfig; g.dbConfig = dbTemp; } } /* ** Get a potentially versioned setting - either from .fossil-settings/<name> */ char *db_get_versionable_setting(const char *zName, char *zDefault){ /* Attempt to load the versioned setting from a checked out file */ char *zVersionedSetting = 0; int noWarn = 0; if( db_open_local() ){ Blob versionedPathname; blob_zero(&versionedPathname); | > > > > > > | > | | > | > | | > > | > > > > > | > > | 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 | g.db = g.dbConfig; g.dbConfig = dbTemp; } } /* ** Get a potentially versioned setting - either from .fossil-settings/<name> ** if we have a local checkout and that file exists, or from the ** CONFIG or GLOBAL_CONFIG tables if we are running in server mode ** (without a local checkout) or if the file does not exist. */ char *db_get_versionable_setting(const char *zName, char *zDefault){ /* Attempt to load the versioned setting from a checked out file */ char *zVersionedSetting = 0; int noWarn = 0; char *zSetting = 0; if( db_open_local() ){ Blob versionedPathname; char *zVersionedPathname; blob_zero(&versionedPathname); blob_appendf(&versionedPathname, "%s/.fossil-settings/%s", g.zLocalRoot, zName); zVersionedPathname = blob_str(&versionedPathname); if( file_size(zVersionedPathname)>=0 ){ /* File exists, and contains the value for this setting. Load from ** the file. */ Blob setting; blob_zero(&setting); if( blob_read_from_file(&setting, zVersionedPathname) >= 0 ){ blob_trim(&setting); /* Avoid non-obvious problems with line endings ** on boolean properties */ zVersionedSetting = strdup(blob_str(&setting)); } blob_reset(&setting); /* See if there's a no-warn flag */ blob_append(&versionedPathname, ".no-warn", -1); if( file_size(blob_str(&versionedPathname))>=0 ){ noWarn = 1; } } blob_reset(&versionedPathname); } /* Load the normal, non-versioned setting */ zSetting = db_get(zName, zDefault); /* Display a warning? */ if( zVersionedSetting!=0 && zSetting!=0 && zSetting[0]!='\0' && zSetting!=zDefault && !noWarn ){ /* There's a versioned setting, and a non-versioned setting. Tell ** the user about the conflict */ fossil_warning( "setting %s has both versioned and non-versioned values: using " "versioned value from file .fossil-settings/%s (to silence this " "warning, either create an empty file named " ".fossil-settings/%s.no-warn or delete the non-versioned setting " " with \"fossil unset %s\")", zName, zName, zName, zName ); } /* Prefer the versioned setting */ return ( zVersionedSetting!=0 ) ? zVersionedSetting : zSetting; } int db_get_versionable_setting_boolean(const char *zName, int dflt){ char *zVal = db_get_versionable_setting(zName, dflt ? "on" : "off"); if( is_truth(zVal) ) return 1; |
︙ | ︙ |
Changes to src/info.c.
︙ | ︙ | |||
278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 | ** Write a line of web-page output that shows changes that have occurred ** to a file between two check-ins. */ static void append_file_change_line( const char *zName, /* Name of the file that has changed */ const char *zOld, /* blob.uuid before change. NULL for added files */ const char *zNew, /* blob.uuid after change. NULL for deletes */ int showDiff, /* Show edit diffs if true */ int mperm /* EXE permission for zNew */ ){ if( !g.okHistory ){ if( zNew==0 ){ @ <p>Deleted %h(zName)</p> }else if( zOld==0 ){ @ <p>Added %h(zName)</p> }else if( fossil_strcmp(zNew, zOld)==0 ){ @ <p>Execute permission %s(mperm?"set":"cleared") for %h(zName)</p> }else{ @ <p>Changes to %h(zName)</p> } if( showDiff ){ @ <blockquote><pre> append_diff(zOld, zNew); @ </pre></blockquote> } }else{ if( zOld && zNew ){ if( fossil_strcmp(zOld, zNew)!=0 ){ @ <p>Modified <a href="%s(g.zTop)/finfo?name=%T(zName)">%h(zName)</a> @ from <a href="%s(g.zTop)/artifact/%s(zOld)">[%S(zOld)]</a> @ to <a href="%s(g.zTop)/artifact/%s(zNew)">[%S(zNew)].</a> }else{ @ <p>Execute permission %s(mperm?"set":"cleared") for @ <a href="%s(g.zTop)/finfo?name=%T(zName)">%h(zName)</a> } }else if( zOld ){ @ <p>Deleted <a href="%s(g.zTop)/finfo?name=%T(zName)">%h(zName)</a> @ version <a href="%s(g.zTop)/artifact/%s(zOld)">[%S(zOld)]</a> }else{ @ <p>Added <a href="%s(g.zTop)/finfo?name=%T(zName)">%h(zName)</a> @ version <a href="%s(g.zTop)/artifact/%s(zNew)">[%S(zNew)]</a> } if( showDiff ){ @ <blockquote><pre> append_diff(zOld, zNew); @ </pre></blockquote> | > > > > > > > | | 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 | ** Write a line of web-page output that shows changes that have occurred ** to a file between two check-ins. */ static void append_file_change_line( const char *zName, /* Name of the file that has changed */ const char *zOld, /* blob.uuid before change. NULL for added files */ const char *zNew, /* blob.uuid after change. NULL for deletes */ const char *zOldName, /* Prior name. NULL if no name change. */ int showDiff, /* Show edit diffs if true */ int mperm /* EXE permission for zNew */ ){ if( !g.okHistory ){ if( zNew==0 ){ @ <p>Deleted %h(zName)</p> }else if( zOld==0 ){ @ <p>Added %h(zName)</p> }else if( zOldName!=0 && fossil_strcmp(zName,zOldName)!=0 ){ @ <p>Name change from %h(zOldName) to %h(zName) }else if( fossil_strcmp(zNew, zOld)==0 ){ @ <p>Execute permission %s(mperm?"set":"cleared") for %h(zName)</p> }else{ @ <p>Changes to %h(zName)</p> } if( showDiff ){ @ <blockquote><pre> append_diff(zOld, zNew); @ </pre></blockquote> } }else{ if( zOld && zNew ){ if( fossil_strcmp(zOld, zNew)!=0 ){ @ <p>Modified <a href="%s(g.zTop)/finfo?name=%T(zName)">%h(zName)</a> @ from <a href="%s(g.zTop)/artifact/%s(zOld)">[%S(zOld)]</a> @ to <a href="%s(g.zTop)/artifact/%s(zNew)">[%S(zNew)].</a> }else if( zOldName!=0 && fossil_strcmp(zName,zOldName)!=0 ){ @ <p>Name change from @ from <a href="%s(g.zTop)/finfo?name=%T(zOldName)">%h(zOldName)</a> @ to <a href="%s(g.zTop)/finfo?name=%T(zName)">%h(zName)</a>. }else{ @ <p>Execute permission %s(mperm?"set":"cleared") for @ <a href="%s(g.zTop)/finfo?name=%T(zName)">%h(zName)</a> } }else if( zOld ){ @ <p>Deleted <a href="%s(g.zTop)/finfo?name=%T(zName)">%h(zName)</a> @ version <a href="%s(g.zTop)/artifact/%s(zOld)">[%S(zOld)]</a> }else{ @ <p>Added <a href="%s(g.zTop)/finfo?name=%T(zName)">%h(zName)</a> @ version <a href="%s(g.zTop)/artifact/%s(zNew)">[%S(zNew)]</a> } if( showDiff ){ @ <blockquote><pre> append_diff(zOld, zNew); @ </pre></blockquote> }else if( zOld && zNew && fossil_strcmp(zOld,zNew)!=0 ){ @ @ <a href="%s(g.zTop)/fdiff?v1=%S(zOld)&v2=%S(zNew)">[diff]</a> } @ </p> } } |
︙ | ︙ | |||
509 510 511 512 513 514 515 | }else{ @ <a href="%s(g.zTop)/vinfo/%T(zName)">[show diffs]</a> } } @ @ <a href="%s(g.zTop)/vpatch?from=%S(zParent)&to=%S(zUuid)">[patch]</a><br/> db_prepare(&q, | | > | > > | | 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 | }else{ @ <a href="%s(g.zTop)/vinfo/%T(zName)">[show diffs]</a> } } @ @ <a href="%s(g.zTop)/vpatch?from=%S(zParent)&to=%S(zUuid)">[patch]</a><br/> db_prepare(&q, "SELECT name," " mperm," " (SELECT uuid FROM blob WHERE rid=mlink.pid)," " (SELECT uuid FROM blob WHERE rid=mlink.fid)," " (SELECT name FROM filename WHERE filename.fnid=mlink.pfnid)" " FROM mlink JOIN filename ON filename.fnid=mlink.fnid" " WHERE mlink.mid=%d" " ORDER BY name", rid ); while( db_step(&q)==SQLITE_ROW ){ const char *zName = db_column_text(&q,0); int mperm = db_column_int(&q, 1); const char *zOld = db_column_text(&q,2); const char *zNew = db_column_text(&q,3); const char *zOldName = db_column_text(&q, 4); append_file_change_line(zName, zOld, zNew, zOldName, showDiff, mperm); } db_finalize(&q); } style_footer(); } /* |
︙ | ︙ | |||
713 714 715 716 717 718 719 | }else if( pFileTo==0 ){ cmp = -1; }else{ cmp = fossil_strcmp(pFileFrom->zName, pFileTo->zName); } if( cmp<0 ){ append_file_change_line(pFileFrom->zName, | | | | | 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 | }else if( pFileTo==0 ){ cmp = -1; }else{ cmp = fossil_strcmp(pFileFrom->zName, pFileTo->zName); } if( cmp<0 ){ append_file_change_line(pFileFrom->zName, pFileFrom->zUuid, 0, 0, 0, 0); pFileFrom = manifest_file_next(pFrom, 0); }else if( cmp>0 ){ append_file_change_line(pFileTo->zName, 0, pFileTo->zUuid, 0, 0, manifest_file_mperm(pFileTo)); pFileTo = manifest_file_next(pTo, 0); }else if( fossil_strcmp(pFileFrom->zUuid, pFileTo->zUuid)==0 ){ /* No changes */ pFileFrom = manifest_file_next(pFrom, 0); pFileTo = manifest_file_next(pTo, 0); }else{ append_file_change_line(pFileFrom->zName, pFileFrom->zUuid, pFileTo->zUuid, 0, showDetail, manifest_file_mperm(pFileTo)); pFileFrom = manifest_file_next(pFrom, 0); pFileTo = manifest_file_next(pTo, 0); } } manifest_destroy(pFrom); manifest_destroy(pTo); |
︙ | ︙ |
Changes to src/manifest.c.
︙ | ︙ | |||
1321 1322 1323 1324 1325 1326 1327 | if( pParentFile->zUuid ) continue; pChildFile = manifest_file_seek(pChild, pParentFile->zName); if( pChildFile ){ add_one_mlink(cid, 0, pChildFile->zUuid, pChildFile->zName, 0, isPublic, manifest_file_mperm(pChildFile)); } } | | | 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 | if( pParentFile->zUuid ) continue; pChildFile = manifest_file_seek(pChild, pParentFile->zName); if( pChildFile ){ add_one_mlink(cid, 0, pChildFile->zUuid, pChildFile->zName, 0, isPublic, manifest_file_mperm(pChildFile)); } } }else if( pChild->zBaseline==0 && pParent->zBaseline!=0 ){ /* Parent is a delta but pChild is a baseline. Look for files that are ** present in pParent but which are missing from pChild and mark them ** has having been deleted. */ manifest_file_rewind(pParent); while( (pParentFile = manifest_file_next(pParent,0))!=0 ){ pChildFile = manifest_file_seek(pChild, pParentFile->zName); if( pChildFile==0 && pParentFile->zUuid!=0 ){ |
︙ | ︙ |
Changes to src/update.c.
︙ | ︙ | |||
461 462 463 464 465 466 467 | db_end_transaction(0); } } /* ** Make sure empty directories are created */ | | < > > > | < > > | | > | > | 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 | db_end_transaction(0); } } /* ** Make sure empty directories are created */ void ensure_empty_dirs_created(void){ /* Make empty directories? */ char *zEmptyDirs = db_get_versionable_setting("empty-dirs", 0); if( zEmptyDirs!=0 ){ char *bc; Blob dirName; Blob dirsList; blob_zero(&dirsList); blob_init(&dirsList, zEmptyDirs, strlen(zEmptyDirs)); /* Replace commas by spaces */ bc = blob_str(&dirsList); while( (*bc)!='\0' ){ if( (*bc)==',' ) { *bc = ' '; } ++bc; } /* Make directories */ blob_zero(&dirName); while( blob_token(&dirsList, &dirName) ){ const char *zDir = blob_str(&dirName); /* Make full pathname of the directory */ Blob path; const char *zPath; blob_zero(&path); blob_appendf(&path, "%s/%s", g.zLocalRoot, zDir); zPath = blob_str(&path); /* Handle various cases of existence of the directory */ switch( file_isdir(zPath) ){ case 0: { /* doesn't exist */ if( file_mkdir(zPath, 0)!=0 ) { fossil_warning("couldn't create directory %s as " "required by empty-dirs setting", zDir); } break; } case 1: { /* exists, and is a directory */ /* do nothing - required directory exists already */ break; } case 2: { /* exists, but isn't a directory */ fossil_warning("file %s found, but a directory is required " "by empty-dirs setting", zDir); } } blob_reset(&path); } } } |
︙ | ︙ |