Skip to content

Commit 018cff7

Browse files
committed
diff.c: emit_add_line() takes only the rest of the line
As the first character on the line that is fed to this function is always "+", it is pointless to send that along with the rest of the line. This change will make it easier to reuse the logic when emitting the rewrite diff, as we do not want to copy a line only to add "+"/"-"/" " immediately before its first character when we produce rewrite diff output. Signed-off-by: Junio C Hamano <[email protected]>
1 parent 250f799 commit 018cff7

File tree

1 file changed

+9
-7
lines changed

1 file changed

+9
-7
lines changed

diff.c

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -424,23 +424,25 @@ static int new_blank_line_at_eof(struct emit_callback *ecbdata, const char *line
424424
ecbdata->blank_at_eof_in_preimage <= ecbdata->lno_in_preimage &&
425425
ecbdata->blank_at_eof_in_postimage <= ecbdata->lno_in_postimage))
426426
return 0;
427-
return ws_blank_line(line + 1, len - 1, ecbdata->ws_rule);
427+
return ws_blank_line(line, len, ecbdata->ws_rule);
428428
}
429429

430-
static void emit_add_line(const char *reset, struct emit_callback *ecbdata, const char *line, int len)
430+
static void emit_add_line(const char *reset,
431+
struct emit_callback *ecbdata,
432+
const char *line, int len)
431433
{
432434
const char *ws = diff_get_color(ecbdata->color_diff, DIFF_WHITESPACE);
433435
const char *set = diff_get_color(ecbdata->color_diff, DIFF_FILE_NEW);
434436

435437
if (!*ws)
436-
emit_line(ecbdata->file, set, reset, line, len);
438+
emit_line_0(ecbdata->file, set, reset, '+', line, len);
437439
else if (new_blank_line_at_eof(ecbdata, line, len))
438440
/* Blank line at EOF - paint '+' as well */
439-
emit_line(ecbdata->file, ws, reset, line, len);
441+
emit_line_0(ecbdata->file, ws, reset, '+', line, len);
440442
else {
441443
/* Emit just the prefix, then the rest. */
442-
emit_line(ecbdata->file, set, reset, line, 1);
443-
ws_check_emit(line + 1, len - 1, ecbdata->ws_rule,
444+
emit_line_0(ecbdata->file, set, reset, '+', "", 0);
445+
ws_check_emit(line, len, ecbdata->ws_rule,
444446
ecbdata->file, set, reset, ws);
445447
}
446448
}
@@ -737,7 +739,7 @@ static void fn_out_consume(void *priv, char *line, unsigned long len)
737739
emit_line(ecbdata->file, color, reset, line, len);
738740
} else {
739741
ecbdata->lno_in_postimage++;
740-
emit_add_line(reset, ecbdata, line, len);
742+
emit_add_line(reset, ecbdata, line + 1, len - 1);
741743
}
742744
}
743745

0 commit comments

Comments
 (0)