Merge branch 'jk/diff-result-code-cleanup'

"git diff --no-such-option" and other corner cases around the exit
status of the "diff" command has been corrected.

* jk/diff-result-code-cleanup:
  diff: drop useless "status" parameter from diff_result_code()
  diff: drop useless return values in git-diff helpers
  diff: drop useless return from run_diff_{files,index} functions
  diff: die when failing to read index in git-diff builtin
  diff: show usage for unknown builtin_diff_files() options
  diff-files: avoid negative exit value
  diff: spell DIFF_INDEX_CACHED out when calling run_diff_index()
This commit is contained in:
Junio C Hamano
2023-09-01 11:26:28 -07:00
17 changed files with 81 additions and 95 deletions

6
diff.c
View File

@ -6982,16 +6982,14 @@ void diffcore_std(struct diff_options *options)
options->found_follow = 0;
}
int diff_result_code(struct diff_options *opt, int status)
int diff_result_code(struct diff_options *opt)
{
int result = 0;
diff_warn_rename_limit("diff.renameLimit",
opt->needed_rename_limit,
opt->degraded_cc_to_c);
if (!opt->flags.exit_with_status &&
!(opt->output_format & DIFF_FORMAT_CHECKDIFF))
return status;
if (opt->flags.exit_with_status &&
opt->flags.has_changes)
result |= 01;