In later patches we'll make extensive use of emit_line_0, as we'd want to funnel all output through this function such that we can add buffering there. Signed-off-by: Stefan Beller <sbeller@xxxxxxxxxx> --- diff.c | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/diff.c b/diff.c index 6c1886d495..25735f03d2 100644 --- a/diff.c +++ b/diff.c @@ -517,12 +517,13 @@ static void check_blank_at_eof(mmfile_t *mf1, mmfile_t *mf2, } static void emit_line_0(struct diff_options *o, const char *set, const char *reset, - int sign, const char *line, int len) + int add_line_prefix, int sign, const char *line, int len) { int has_trailing_newline, has_trailing_carriage_return; FILE *file = o->file; - fputs(diff_line_prefix(o), file); + if (add_line_prefix) + fputs(diff_line_prefix(o), file); has_trailing_newline = (len > 0 && line[len-1] == '\n'); if (has_trailing_newline) @@ -549,7 +550,7 @@ static void emit_line_0(struct diff_options *o, const char *set, const char *res static void emit_line(struct diff_options *o, const char *set, const char *reset, const char *line, int len) { - emit_line_0(o, set, reset, 0, line, len); + emit_line_0(o, set, reset, 1, 0, line, len); } static int new_blank_line_at_eof(struct emit_callback *ecbdata, const char *line, int len) @@ -580,13 +581,13 @@ static void emit_line_checked(const char *reset, } if (!ws) - emit_line_0(ecbdata->opt, set, reset, sign, line, len); + emit_line_0(ecbdata->opt, set, reset, 1, sign, line, len); else if (sign == '+' && new_blank_line_at_eof(ecbdata, line, len)) /* Blank line at EOF - paint '+' as well */ - emit_line_0(ecbdata->opt, ws, reset, sign, line, len); + emit_line_0(ecbdata->opt, ws, reset, 1, sign, line, len); else { /* Emit just the prefix, then the rest. */ - emit_line_0(ecbdata->opt, set, reset, sign, "", 0); + emit_line_0(ecbdata->opt, set, reset, 1, sign, "", 0); ws_check_emit(line, len, ecbdata->ws_rule, ecbdata->opt->file, set, reset, ws); } @@ -735,7 +736,7 @@ static void emit_rewrite_lines(struct emit_callback *ecb, const char *context = diff_get_color(ecb->color_diff, DIFF_CONTEXT); putc('\n', ecb->opt->file); - emit_line_0(ecb->opt, context, reset, '\\', + emit_line_0(ecb->opt, context, reset, 1, '\\', nneof, strlen(nneof)); } } -- 2.13.0.18.g7d86cc8ba0