commit 66ea8e5adfb496de581ba4b78479f3258692ee9e from: Stefan Sperling date: Sat Oct 17 00:00:24 2020 UTC avoid printing the --- +++ diff header in diff_output_unidiff_chunk() commit - 37f62f5d4e914963adfbf2085f5fd9294d79b497 commit + 66ea8e5adfb496de581ba4b78479f3258692ee9e blob - c4259e18e965b715f404bfcfb23821be55b30468 blob + f9307b1fc9fb1776eb3f64b4bf48067896283ca3 --- lib/diff_output_unidiff.c +++ lib/diff_output_unidiff.c @@ -144,6 +144,7 @@ output_unidiff_chunk(struct diff_output_info *outinfo, struct diff_output_unidiff_state *state, const struct diff_input_info *info, const struct diff_result *result, + bool print_header, const struct diff_chunk_context *cc) { int rc, left_start, left_len, right_start, right_len; @@ -157,7 +158,7 @@ output_unidiff_chunk(struct diff_output_info *outinfo, outoff = outinfo->line_offsets.head[idx]; } - if (!(state->header_printed)) { + if (print_header && !(state->header_printed)) { rc = fprintf(dest, "--- %s\n", info->left_path ? : "a"); if (rc < 0) return errno; @@ -304,7 +305,7 @@ diff_output_unidiff_chunk(struct diff_output_info **ou } return output_unidiff_chunk(outinfo, dest, state, info, - result, cc); + result, false, cc); } int @@ -403,14 +404,16 @@ diff_output_unidiff(struct diff_output_info **output_i debug("new chunk to be printed does not touch previous chunk;" " print left %d-%d right %d-%d\n", cc.left.start, cc.left.end, cc.right.start, cc.right.end); - output_unidiff_chunk(outinfo, dest, state, info, result, &cc); + output_unidiff_chunk(outinfo, dest, state, info, result, + true, &cc); cc = next; debug("new unprinted chunk is left %d-%d right %d-%d\n", cc.left.start, cc.left.end, cc.right.start, cc.right.end); } if (!diff_chunk_context_empty(&cc)) - output_unidiff_chunk(outinfo, dest, state, info, result, &cc); + output_unidiff_chunk(outinfo, dest, state, info, result, + true, &cc); diff_output_unidiff_state_free(state); return DIFF_RC_OK; }