summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--diff.c16
1 files changed, 9 insertions, 7 deletions
diff --git a/diff.c b/diff.c
index e4aaebf0d0..07cf04365c 100644
--- a/diff.c
+++ b/diff.c
@@ -424,23 +424,25 @@ static int new_blank_line_at_eof(struct emit_callback *ecbdata, const char *line
ecbdata->blank_at_eof_in_preimage <= ecbdata->lno_in_preimage &&
ecbdata->blank_at_eof_in_postimage <= ecbdata->lno_in_postimage))
return 0;
- return ws_blank_line(line + 1, len - 1, ecbdata->ws_rule);
+ return ws_blank_line(line, len, ecbdata->ws_rule);
}
-static void emit_add_line(const char *reset, struct emit_callback *ecbdata, const char *line, int len)
+static void emit_add_line(const char *reset,
+ struct emit_callback *ecbdata,
+ const char *line, int len)
{
const char *ws = diff_get_color(ecbdata->color_diff, DIFF_WHITESPACE);
const char *set = diff_get_color(ecbdata->color_diff, DIFF_FILE_NEW);
if (!*ws)
- emit_line(ecbdata->file, set, reset, line, len);
+ emit_line_0(ecbdata->file, set, reset, '+', line, len);
else if (new_blank_line_at_eof(ecbdata, line, len))
/* Blank line at EOF - paint '+' as well */
- emit_line(ecbdata->file, ws, reset, line, len);
+ emit_line_0(ecbdata->file, ws, reset, '+', line, len);
else {
/* Emit just the prefix, then the rest. */
- emit_line(ecbdata->file, set, reset, line, 1);
- ws_check_emit(line + 1, len - 1, ecbdata->ws_rule,
+ emit_line_0(ecbdata->file, set, reset, '+', "", 0);
+ ws_check_emit(line, len, ecbdata->ws_rule,
ecbdata->file, set, reset, ws);
}
}
@@ -737,7 +739,7 @@ static void fn_out_consume(void *priv, char *line, unsigned long len)
emit_line(ecbdata->file, color, reset, line, len);
} else {
ecbdata->lno_in_postimage++;
- emit_add_line(reset, ecbdata, line, len);
+ emit_add_line(reset, ecbdata, line + 1, len - 1);
}
}