Ævar Arnfjörð Bjarmason <avarab@xxxxxxxxx> writes: > if (rev->rdiff1) { > + struct diff_options opts; > + memcpy(&opts, &rev->diffopt, sizeof(opts)); > + opts.output_format &= ~(DIFF_FORMAT_DIFFSTAT | DIFF_FORMAT_SUMMARY); > + > fprintf_ln(rev->diffopt.file, "%s", rev->rdiff_title); > show_range_diff(rev->rdiff1, rev->rdiff2, > - rev->creation_factor, 1, &rev->diffopt); > + rev->creation_factor, 1, &opts); I am not quite convinced if this shallow copy is a safe thing to do. Quite honestly at this late in the release cycle, as a band-aid, I'd rather see a simpler revert than a change like this that we have to worry about what happens if/when show_range_diff() _thinks_ it is done with the opts and ends up discarding resources (e.g. "FILE *") that are shared with rev->diffopt that would still have to be used later.