提交 a4ca1465 编写于 作者: J Johannes Schindelin 提交者: Junio C Hamano

diff --color-words -U0: fix the location of hunk headers

Colored word diff without context lines firstly printed all the hunk
headers among each other and then printed the diff.

This was due to the code relying on getting at least one context line at
the end of each hunk, where the colored words would be flushed (it is
done that way to be able to ignore rewrapped lines).

Noticed by Markus Heidelberg.
Signed-off-by: NJohannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: NJunio C Hamano <gitster@pobox.com>
上级 168eff3c
......@@ -656,6 +656,12 @@ static void fn_out_consume(void *priv, char *line, unsigned long len)
for (i = 0; i < len && line[i] == '@'; i++)
;
if (2 <= i && i < len && line[i] == ' ') {
/* flush --color-words even for --unified=0 */
if (ecbdata->diff_words &&
(ecbdata->diff_words->minus.text.size ||
ecbdata->diff_words->plus.text.size))
diff_words_show(ecbdata->diff_words);
ecbdata->nparents = i - 1;
len = sane_truncate_line(ecbdata, line, len);
emit_line(ecbdata->file,
......
......@@ -77,7 +77,7 @@ cat > expect <<\EOF
<GREEN>aeff = aeff * ( aaa )<RESET>
EOF
test_expect_failure 'word diff without context' '
test_expect_success 'word diff without context' '
word_diff --color-words --unified=0
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册