diff: fix coloring of extended diff headers
commit374664478f204ab45bbd494ab21492f331d8b1f0
authorBert Wesarg <bert.wesarg@googlemail.com>
Mon, 3 May 2010 22:38:07 +0000 (4 00:38 +0200)
committerJunio C Hamano <gitster@pobox.com>
Thu, 20 May 2010 04:06:40 +0000 (19 21:06 -0700)
treecffee347834a26d724cdd700a75ee59cf4fb52a9
parentd599e0484f8ebac8cc50e9557a4c3d246826843d
diff: fix coloring of extended diff headers

Coloring the extended headers where done as a whole not per line. less with
option -R (which is the default from git) does not support this coloring
mode because of performance reasons. The -r option would be an alternative
but has problems with lines that are longer than the screen. Therefore
stick to the idiom to color each line separately. The problem is, that the
result of ill_metainfo() will also be used as an parameter to an external
diff driver, so we need to disable coloring in this case.

Because coloring is now done inside fill_metainfo() we can simply add this
string to the diff header and therefore keep the last newline in the
extended header. This results also into the fact that the external diff
driver now gets this last newline too. Which is a change in behavior
but a good one.

Signed-off-by: Bert Wesarg <bert.wesarg@googlemail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
diff.c