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 <sbel...@google.com>
---
 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

Reply via email to