提交 b9cbfde6 编写于 作者: S Stefan Beller 提交者: Junio C Hamano

diff.c: emit_diff_symbol learns DIFF_SYMBOL_NO_LF_EOF

Signed-off-by: NStefan Beller <sbeller@google.com>
Signed-off-by: NJunio C Hamano <gitster@pobox.com>
上级 68abc6f1
...@@ -561,6 +561,7 @@ static void emit_line(struct diff_options *o, const char *set, const char *reset ...@@ -561,6 +561,7 @@ static void emit_line(struct diff_options *o, const char *set, const char *reset
} }
enum diff_symbol { enum diff_symbol {
DIFF_SYMBOL_NO_LF_EOF,
DIFF_SYMBOL_CONTEXT_FRAGINFO, DIFF_SYMBOL_CONTEXT_FRAGINFO,
DIFF_SYMBOL_CONTEXT_MARKER, DIFF_SYMBOL_CONTEXT_MARKER,
DIFF_SYMBOL_SEPARATOR DIFF_SYMBOL_SEPARATOR
...@@ -569,8 +570,16 @@ enum diff_symbol { ...@@ -569,8 +570,16 @@ enum diff_symbol {
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)
{ {
static const char *nneof = " No newline at end of file\n";
const char *context, *reset; const char *context, *reset;
switch (s) { switch (s) {
case DIFF_SYMBOL_NO_LF_EOF:
context = diff_get_color_opt(o, DIFF_CONTEXT);
reset = diff_get_color_opt(o, DIFF_RESET);
putc('\n', o->file);
emit_line_0(o, context, reset, '\\',
nneof, strlen(nneof));
break;
case DIFF_SYMBOL_CONTEXT_FRAGINFO: case DIFF_SYMBOL_CONTEXT_FRAGINFO:
emit_line(o, "", "", line, len); emit_line(o, "", "", line, len);
break; break;
...@@ -751,7 +760,6 @@ static void emit_rewrite_lines(struct emit_callback *ecb, ...@@ -751,7 +760,6 @@ static void emit_rewrite_lines(struct emit_callback *ecb,
int prefix, const char *data, int size) int prefix, const char *data, int size)
{ {
const char *endp = NULL; const char *endp = NULL;
static const char *nneof = " No newline at end of file\n";
const char *reset = diff_get_color(ecb->color_diff, DIFF_RESET); const char *reset = diff_get_color(ecb->color_diff, DIFF_RESET);
while (0 < size) { while (0 < size) {
...@@ -769,13 +777,8 @@ static void emit_rewrite_lines(struct emit_callback *ecb, ...@@ -769,13 +777,8 @@ static void emit_rewrite_lines(struct emit_callback *ecb,
size -= len; size -= len;
data += len; data += len;
} }
if (!endp) { if (!endp)
const char *context = diff_get_color(ecb->color_diff, emit_diff_symbol(ecb->opt, DIFF_SYMBOL_NO_LF_EOF, NULL, 0);
DIFF_CONTEXT);
putc('\n', ecb->opt->file);
emit_line_0(ecb->opt, context, reset, '\\',
nneof, strlen(nneof));
}
} }
static void emit_rewrite_diff(const char *name_a, static void emit_rewrite_diff(const char *name_a,
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册