emit_line(): don't emit an empty <SET><RESET> followed by a newline

When emit_line() is called with an empty line (but non-zero length, as we
send line terminating LF or CRLF to the function), it used to emit
<SET><RESET> followed by a newline.  Stop the wastefulness.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Junio C Hamano
2009-11-27 22:04:10 -08:00
parent c8e1c3d3e8
commit 06a4755270
2 changed files with 11 additions and 10 deletions

13
diff.c
View File

@ -295,12 +295,13 @@ static void emit_line_0(FILE *file, const char *set, const char *reset,
nofirst = 0;
}
fputs(set, file);
if (!nofirst)
fputc(first, file);
fwrite(line, len, 1, file);
fputs(reset, file);
if (len || !nofirst) {
fputs(set, file);
if (!nofirst)
fputc(first, file);
fwrite(line, len, 1, file);
fputs(reset, file);
}
if (has_trailing_carriage_return)
fputc('\r', file);
if (has_trailing_newline)