summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2009-11-27 22:04:10 -0800
committerJunio C Hamano <gitster@pobox.com>2009-11-27 22:33:53 -0800
commit06a4755270b86a2af20a5c1f0d785311472b5223 (patch)
treeede83e7c993aa2ddb3f696e62f816d902468bcdf
parentc8e1c3d3e8ed326fe9e8ba5616db2e81a41fcc16 (diff)
downloadgit-06a4755270b86a2af20a5c1f0d785311472b5223.tar.gz
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>
-rw-r--r--diff.c13
-rwxr-xr-xt/t4034-diff-words.sh8
2 files changed, 11 insertions, 10 deletions
diff --git a/diff.c b/diff.c
index 0d7f5ea4a8..108c7d7644 100644
--- a/diff.c
+++ b/diff.c
@@ -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)
diff --git a/t/t4034-diff-words.sh b/t/t4034-diff-words.sh
index 21db6e95c4..2d24fbeda6 100755
--- a/t/t4034-diff-words.sh
+++ b/t/t4034-diff-words.sh
@@ -49,7 +49,7 @@ cat > expect <<\EOF
<WHITE>+++ b/post<RESET>
<BROWN>@@ -1,3 +1,7 @@<RESET>
<RED>h(4)<RESET><GREEN>h(4),hh[44]<RESET>
-<RESET>
+
a = b + c<RESET>
<GREEN>aa = a<RESET>
@@ -90,7 +90,7 @@ cat > expect <<\EOF
<WHITE>+++ b/post<RESET>
<BROWN>@@ -1,3 +1,7 @@<RESET>
h(4),<GREEN>hh<RESET>[44]
-<RESET>
+
a = b + c<RESET>
<GREEN>aa = a<RESET>
@@ -126,7 +126,7 @@ cat > expect <<\EOF
<WHITE>+++ b/post<RESET>
<BROWN>@@ -1,3 +1,7 @@<RESET>
h(4)<GREEN>,hh[44]<RESET>
-<RESET>
+
a = b + c<RESET>
<GREEN>aa = a<RESET>
@@ -168,7 +168,7 @@ cat > expect <<\EOF
<WHITE>+++ b/post<RESET>
<BROWN>@@ -1,3 +1,7 @@<RESET>
h(4),<GREEN>hh[44<RESET>]
-<RESET>
+
a = b + c<RESET>
<GREEN>aa = a<RESET>