diff-lib: accept option flags in run_diff_index()

In a future commit, we will teach run_diff_index() to accept more
options via flag bits. For now, change `cached` into a flag in the
`option` bitfield. The behaviour should remain exactly the same.

Signed-off-by: Denton Liu <liu.denton@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Denton Liu
2020-09-20 04:22:22 -07:00
committed by Junio C Hamano
parent 308d7a7dc9
commit 4c3fe82ef1
4 changed files with 13 additions and 10 deletions

View File

@ -134,11 +134,11 @@ static int builtin_diff_blobs(struct rev_info *revs,
static int builtin_diff_index(struct rev_info *revs,
int argc, const char **argv)
{
int cached = 0;
unsigned int option = 0;
while (1 < argc) {
const char *arg = argv[1];
if (!strcmp(arg, "--cached") || !strcmp(arg, "--staged"))
cached = 1;
option |= DIFF_INDEX_CACHED;
else
usage(builtin_diff_usage);
argv++; argc--;
@ -151,7 +151,7 @@ static int builtin_diff_index(struct rev_info *revs,
revs->max_count != -1 || revs->min_age != -1 ||
revs->max_age != -1)
usage(builtin_diff_usage);
if (!cached) {
if (!(option & DIFF_INDEX_CACHED)) {
setup_work_tree();
if (read_cache_preload(&revs->diffopt.pathspec) < 0) {
perror("read_cache_preload");
@ -161,7 +161,7 @@ static int builtin_diff_index(struct rev_info *revs,
perror("read_cache");
return -1;
}
return run_diff_index(revs, cached);
return run_diff_index(revs, option);
}
static int builtin_diff_tree(struct rev_info *revs,