diff.c: emit_diff_symbol learns DIFF_SYMBOL_CONTEXT_MARKER
Signed-off-by: Stefan Beller <sbeller@google.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
36a4cefdf4
commit
c64b420b4c
10
diff.c
10
diff.c
@ -561,13 +561,20 @@ static void emit_line(struct diff_options *o, const char *set, const char *reset
|
|||||||
}
|
}
|
||||||
|
|
||||||
enum diff_symbol {
|
enum diff_symbol {
|
||||||
|
DIFF_SYMBOL_CONTEXT_MARKER,
|
||||||
DIFF_SYMBOL_SEPARATOR
|
DIFF_SYMBOL_SEPARATOR
|
||||||
};
|
};
|
||||||
|
|
||||||
static void emit_diff_symbol(struct diff_options *o, enum diff_symbol s,
|
static void emit_diff_symbol(struct diff_options *o, enum diff_symbol s,
|
||||||
const char *line, int len)
|
const char *line, int len)
|
||||||
{
|
{
|
||||||
|
const char *context, *reset;
|
||||||
switch (s) {
|
switch (s) {
|
||||||
|
case DIFF_SYMBOL_CONTEXT_MARKER:
|
||||||
|
context = diff_get_color_opt(o, DIFF_CONTEXT);
|
||||||
|
reset = diff_get_color_opt(o, DIFF_RESET);
|
||||||
|
emit_line(o, context, reset, line, len);
|
||||||
|
break;
|
||||||
case DIFF_SYMBOL_SEPARATOR:
|
case DIFF_SYMBOL_SEPARATOR:
|
||||||
fprintf(o->file, "%s%c",
|
fprintf(o->file, "%s%c",
|
||||||
diff_line_prefix(o),
|
diff_line_prefix(o),
|
||||||
@ -662,7 +669,8 @@ static void emit_hunk_header(struct emit_callback *ecbdata,
|
|||||||
if (len < 10 ||
|
if (len < 10 ||
|
||||||
memcmp(line, atat, 2) ||
|
memcmp(line, atat, 2) ||
|
||||||
!(ep = memmem(line + 2, len - 2, atat, 2))) {
|
!(ep = memmem(line + 2, len - 2, atat, 2))) {
|
||||||
emit_line(ecbdata->opt, context, reset, line, len);
|
emit_diff_symbol(ecbdata->opt,
|
||||||
|
DIFF_SYMBOL_CONTEXT_MARKER, line, len);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
ep += 2; /* skip over @@ */
|
ep += 2; /* skip over @@ */
|
||||||
|
Loading…
Reference in New Issue
Block a user