Fossil SCM
On windows, make "gdiff" default to using WinDiff.exe.
Commit
cad57bf65d1e8fba72213b46eba99499629a10ee
Parent
98f29f24cd4349d…
2 files changed
+24
-2
+3
-3
+24
-2
| --- src/diffcmd.c | ||
| +++ src/diffcmd.c | ||
| @@ -451,10 +451,32 @@ | ||
| 451 | 451 | } |
| 452 | 452 | } |
| 453 | 453 | manifest_destroy(pFrom); |
| 454 | 454 | manifest_destroy(pTo); |
| 455 | 455 | } |
| 456 | + | |
| 457 | +/* | |
| 458 | +** Return the name of the external diff command, or return NULL if | |
| 459 | +** no external diff command is defined. | |
| 460 | +*/ | |
| 461 | +const char *diff_command_external(int guiDiff){ | |
| 462 | + const char *zDefault; | |
| 463 | + const char *zName; | |
| 464 | + | |
| 465 | + if( guiDiff ){ | |
| 466 | +#if defined(_WIN32) | |
| 467 | + zDefault = "WinDiff.exe"; | |
| 468 | +#else | |
| 469 | + zDefault = 0; | |
| 470 | +#endif | |
| 471 | + zName = "gdiff-command"; | |
| 472 | + }else{ | |
| 473 | + zDefault = 0; | |
| 474 | + zName = "diff-command"; | |
| 475 | + } | |
| 476 | + return db_get(zName, zDefault); | |
| 477 | +} | |
| 456 | 478 | |
| 457 | 479 | /* |
| 458 | 480 | ** COMMAND: diff |
| 459 | 481 | ** COMMAND: gdiff |
| 460 | 482 | ** |
| @@ -522,11 +544,11 @@ | ||
| 522 | 544 | } |
| 523 | 545 | if( zTo==0 ){ |
| 524 | 546 | db_must_be_within_tree(); |
| 525 | 547 | verify_all_options(); |
| 526 | 548 | if( !isInternDiff ){ |
| 527 | - zDiffCmd = db_get(isGDiff ? "gdiff-command" : "diff-command", 0); | |
| 549 | + zDiffCmd = diff_command_external(isGDiff); | |
| 528 | 550 | } |
| 529 | 551 | if( g.argc>=3 ){ |
| 530 | 552 | for(f=2; f<g.argc; ++f){ |
| 531 | 553 | diff_one_against_disk(zFrom, zDiffCmd, diffFlags, g.argv[f]); |
| 532 | 554 | } |
| @@ -537,11 +559,11 @@ | ||
| 537 | 559 | fossil_fatal("must use --from if --to is present"); |
| 538 | 560 | }else{ |
| 539 | 561 | db_find_and_open_repository(0, 0); |
| 540 | 562 | verify_all_options(); |
| 541 | 563 | if( !isInternDiff ){ |
| 542 | - zDiffCmd = db_get(isGDiff ? "gdiff-command" : "diff-command", 0); | |
| 564 | + zDiffCmd = diff_command_external(isGDiff); | |
| 543 | 565 | } |
| 544 | 566 | if( g.argc>=3 ){ |
| 545 | 567 | for(f=2; f<g.argc; ++f){ |
| 546 | 568 | diff_one_two_versions(zFrom, zTo, zDiffCmd, diffFlags, g.argv[f]); |
| 547 | 569 | } |
| 548 | 570 |
| --- src/diffcmd.c | |
| +++ src/diffcmd.c | |
| @@ -451,10 +451,32 @@ | |
| 451 | } |
| 452 | } |
| 453 | manifest_destroy(pFrom); |
| 454 | manifest_destroy(pTo); |
| 455 | } |
| 456 | |
| 457 | /* |
| 458 | ** COMMAND: diff |
| 459 | ** COMMAND: gdiff |
| 460 | ** |
| @@ -522,11 +544,11 @@ | |
| 522 | } |
| 523 | if( zTo==0 ){ |
| 524 | db_must_be_within_tree(); |
| 525 | verify_all_options(); |
| 526 | if( !isInternDiff ){ |
| 527 | zDiffCmd = db_get(isGDiff ? "gdiff-command" : "diff-command", 0); |
| 528 | } |
| 529 | if( g.argc>=3 ){ |
| 530 | for(f=2; f<g.argc; ++f){ |
| 531 | diff_one_against_disk(zFrom, zDiffCmd, diffFlags, g.argv[f]); |
| 532 | } |
| @@ -537,11 +559,11 @@ | |
| 537 | fossil_fatal("must use --from if --to is present"); |
| 538 | }else{ |
| 539 | db_find_and_open_repository(0, 0); |
| 540 | verify_all_options(); |
| 541 | if( !isInternDiff ){ |
| 542 | zDiffCmd = db_get(isGDiff ? "gdiff-command" : "diff-command", 0); |
| 543 | } |
| 544 | if( g.argc>=3 ){ |
| 545 | for(f=2; f<g.argc; ++f){ |
| 546 | diff_one_two_versions(zFrom, zTo, zDiffCmd, diffFlags, g.argv[f]); |
| 547 | } |
| 548 |
| --- src/diffcmd.c | |
| +++ src/diffcmd.c | |
| @@ -451,10 +451,32 @@ | |
| 451 | } |
| 452 | } |
| 453 | manifest_destroy(pFrom); |
| 454 | manifest_destroy(pTo); |
| 455 | } |
| 456 | |
| 457 | /* |
| 458 | ** Return the name of the external diff command, or return NULL if |
| 459 | ** no external diff command is defined. |
| 460 | */ |
| 461 | const char *diff_command_external(int guiDiff){ |
| 462 | const char *zDefault; |
| 463 | const char *zName; |
| 464 | |
| 465 | if( guiDiff ){ |
| 466 | #if defined(_WIN32) |
| 467 | zDefault = "WinDiff.exe"; |
| 468 | #else |
| 469 | zDefault = 0; |
| 470 | #endif |
| 471 | zName = "gdiff-command"; |
| 472 | }else{ |
| 473 | zDefault = 0; |
| 474 | zName = "diff-command"; |
| 475 | } |
| 476 | return db_get(zName, zDefault); |
| 477 | } |
| 478 | |
| 479 | /* |
| 480 | ** COMMAND: diff |
| 481 | ** COMMAND: gdiff |
| 482 | ** |
| @@ -522,11 +544,11 @@ | |
| 544 | } |
| 545 | if( zTo==0 ){ |
| 546 | db_must_be_within_tree(); |
| 547 | verify_all_options(); |
| 548 | if( !isInternDiff ){ |
| 549 | zDiffCmd = diff_command_external(isGDiff); |
| 550 | } |
| 551 | if( g.argc>=3 ){ |
| 552 | for(f=2; f<g.argc; ++f){ |
| 553 | diff_one_against_disk(zFrom, zDiffCmd, diffFlags, g.argv[f]); |
| 554 | } |
| @@ -537,11 +559,11 @@ | |
| 559 | fossil_fatal("must use --from if --to is present"); |
| 560 | }else{ |
| 561 | db_find_and_open_repository(0, 0); |
| 562 | verify_all_options(); |
| 563 | if( !isInternDiff ){ |
| 564 | zDiffCmd = diff_command_external(isGDiff); |
| 565 | } |
| 566 | if( g.argc>=3 ){ |
| 567 | for(f=2; f<g.argc; ++f){ |
| 568 | diff_one_two_versions(zFrom, zTo, zDiffCmd, diffFlags, g.argv[f]); |
| 569 | } |
| 570 |
+3
-3
| --- src/stash.c | ||
| +++ src/stash.c | ||
| @@ -549,20 +549,20 @@ | ||
| 549 | 549 | "(SELECT origname FROM stashfile WHERE stashid=%d)", |
| 550 | 550 | stashid); |
| 551 | 551 | undo_finish(); |
| 552 | 552 | }else |
| 553 | 553 | if( memcmp(zCmd, "diff", nCmd)==0 ){ |
| 554 | - const char *zDiffCmd = db_get("diff-command", 0); | |
| 554 | + const char *zDiffCmd = diff_command_external(0); | |
| 555 | 555 | u64 diffFlags = diff_options(); |
| 556 | 556 | if( g.argc>4 ) usage("diff STASHID"); |
| 557 | 557 | stashid = stash_get_id(g.argc==4 ? g.argv[3] : 0); |
| 558 | 558 | stash_diff(stashid, zDiffCmd, diffFlags); |
| 559 | 559 | }else |
| 560 | 560 | if( memcmp(zCmd, "gdiff", nCmd)==0 ){ |
| 561 | - const char *zDiffCmd = db_get("gdiff-command", 0); | |
| 561 | + const char *zDiffCmd = diff_command_external(1); | |
| 562 | 562 | u64 diffFlags = diff_options(); |
| 563 | - if( g.argc>4 ) usage("diff STASHID"); | |
| 563 | + if( g.argc>4 ) usage("gdiff STASHID"); | |
| 564 | 564 | stashid = stash_get_id(g.argc==4 ? g.argv[3] : 0); |
| 565 | 565 | stash_diff(stashid, zDiffCmd, diffFlags); |
| 566 | 566 | }else |
| 567 | 567 | if( memcmp(zCmd, "help", nCmd)==0 ){ |
| 568 | 568 | g.argv[1] = "help"; |
| 569 | 569 |
| --- src/stash.c | |
| +++ src/stash.c | |
| @@ -549,20 +549,20 @@ | |
| 549 | "(SELECT origname FROM stashfile WHERE stashid=%d)", |
| 550 | stashid); |
| 551 | undo_finish(); |
| 552 | }else |
| 553 | if( memcmp(zCmd, "diff", nCmd)==0 ){ |
| 554 | const char *zDiffCmd = db_get("diff-command", 0); |
| 555 | u64 diffFlags = diff_options(); |
| 556 | if( g.argc>4 ) usage("diff STASHID"); |
| 557 | stashid = stash_get_id(g.argc==4 ? g.argv[3] : 0); |
| 558 | stash_diff(stashid, zDiffCmd, diffFlags); |
| 559 | }else |
| 560 | if( memcmp(zCmd, "gdiff", nCmd)==0 ){ |
| 561 | const char *zDiffCmd = db_get("gdiff-command", 0); |
| 562 | u64 diffFlags = diff_options(); |
| 563 | if( g.argc>4 ) usage("diff STASHID"); |
| 564 | stashid = stash_get_id(g.argc==4 ? g.argv[3] : 0); |
| 565 | stash_diff(stashid, zDiffCmd, diffFlags); |
| 566 | }else |
| 567 | if( memcmp(zCmd, "help", nCmd)==0 ){ |
| 568 | g.argv[1] = "help"; |
| 569 |
| --- src/stash.c | |
| +++ src/stash.c | |
| @@ -549,20 +549,20 @@ | |
| 549 | "(SELECT origname FROM stashfile WHERE stashid=%d)", |
| 550 | stashid); |
| 551 | undo_finish(); |
| 552 | }else |
| 553 | if( memcmp(zCmd, "diff", nCmd)==0 ){ |
| 554 | const char *zDiffCmd = diff_command_external(0); |
| 555 | u64 diffFlags = diff_options(); |
| 556 | if( g.argc>4 ) usage("diff STASHID"); |
| 557 | stashid = stash_get_id(g.argc==4 ? g.argv[3] : 0); |
| 558 | stash_diff(stashid, zDiffCmd, diffFlags); |
| 559 | }else |
| 560 | if( memcmp(zCmd, "gdiff", nCmd)==0 ){ |
| 561 | const char *zDiffCmd = diff_command_external(1); |
| 562 | u64 diffFlags = diff_options(); |
| 563 | if( g.argc>4 ) usage("gdiff STASHID"); |
| 564 | stashid = stash_get_id(g.argc==4 ? g.argv[3] : 0); |
| 565 | stash_diff(stashid, zDiffCmd, diffFlags); |
| 566 | }else |
| 567 | if( memcmp(zCmd, "help", nCmd)==0 ){ |
| 568 | g.argv[1] = "help"; |
| 569 |