| 556 | } |
| 557 | |
| 558 | static const struct external_diff *external_diff(void) |
| 559 | { |
| 560 | static struct external_diff external_diff_env, *external_diff_ptr; |
| 561 | static int done_preparing = 0; |
| 562 | |
| 563 | if (done_preparing) |
| 564 | return external_diff_ptr; |
| 565 | external_diff_env.cmd = xstrdup_or_null(getenv("GIT_EXTERNAL_DIFF")); |
| 566 | if (git_env_bool("GIT_EXTERNAL_DIFF_TRUST_EXIT_CODE", 0)) |
| 567 | external_diff_env.trust_exit_code = 1; |
| 568 | if (external_diff_env.cmd) |
| 569 | external_diff_ptr = &external_diff_env; |
| 570 | else if (external_diff_cfg.cmd) |
| 571 | external_diff_ptr = &external_diff_cfg; |
| 572 | done_preparing = 1; |
| 573 | return external_diff_ptr; |
| 574 | } |
| 575 | |
| 576 | /* |
| 577 | * Keep track of files used for diffing. Sometimes such an entry |
no test coverage detected