Skip to content

Commit

Permalink
diff.c: emit_add_line() takes only the rest of the line
Browse files Browse the repository at this point in the history
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 <gitster@pobox.com>
  • Loading branch information
Junio C Hamano committed Sep 15, 2009
1 parent 250f799 commit 018cff7
Showing 1 changed file with 9 additions and 7 deletions.
16 changes: 9 additions & 7 deletions diff.c
Original file line number Diff line number Diff line change
Expand Up @@ -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);
}
}
Expand Down Expand Up @@ -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);
}
}

Expand Down

0 comments on commit 018cff7

Please sign in to comment.