@ -1072,7 +1072,7 @@ static void show_dirstat(struct diff_options *options)
dir.alloc = 0;
dir.alloc = 0;
dir.nr = 0;
dir.nr = 0;
dir.percent = options->dirstat_percent;
dir.percent = options->dirstat_percent;
dir.cumulative = options->output_format & DIFF_FORMAT_CUMULATIVE;
dir.cumulative = DIFF_OPT_TST(options, DIRSTAT_CUMULATIVE);
changed = 0;
changed = 0;
for (i = 0; i < q->nr; i++) {
for (i = 0; i < q->nr; i++) {
@ -2298,6 +2298,7 @@ void diff_setup(struct diff_options *options)
options->break_opt = -1;
options->break_opt = -1;
options->rename_limit = -1;
options->rename_limit = -1;
options->dirstat_percent = 3;
options->dirstat_percent = 3;
DIFF_OPT_CLR(options, DIRSTAT_CUMULATIVE);
options->context = 3;
options->context = 3;
options->change = diff_change;
options->change = diff_change;
@ -2470,8 +2471,10 @@ int diff_opt_parse(struct diff_options *options, const char **av, int ac)
options->output_format |= DIFF_FORMAT_SHORTSTAT;
options->output_format |= DIFF_FORMAT_SHORTSTAT;
else if (opt_arg(arg, 'X', "dirstat", &options->dirstat_percent))
else if (opt_arg(arg, 'X', "dirstat", &options->dirstat_percent))
options->output_format |= DIFF_FORMAT_DIRSTAT;
options->output_format |= DIFF_FORMAT_DIRSTAT;
else if (!strcmp(arg, "--cumulative"))
else if (!strcmp(arg, "--cumulative")) {
options->output_format |= DIFF_FORMAT_CUMULATIVE;
options->output_format |= DIFF_FORMAT_DIRSTAT;
DIFF_OPT_SET(options, DIRSTAT_CUMULATIVE);
}
else if (!strcmp(arg, "--check"))
else if (!strcmp(arg, "--check"))
options->output_format |= DIFF_FORMAT_CHECKDIFF;
options->output_format |= DIFF_FORMAT_CHECKDIFF;
else if (!strcmp(arg, "--summary"))
else if (!strcmp(arg, "--summary"))