diff options
author | Johannes Schindelin <Johannes.Schindelin@gmx.de> | 2009-10-29 11:45:03 +0100 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2009-10-30 09:42:56 -0700 |
commit | a4ca1465ec8afee798bf8f11d727179ca3da64a9 (patch) | |
tree | bb17119f78d5649eaeafaf07a454064c8cff4c63 /diff.c | |
parent | 168eff3c802a47a4e8a97b2ec70d86e5f605a012 (diff) | |
download | git-a4ca1465ec8afee798bf8f11d727179ca3da64a9.tar.gz git-a4ca1465ec8afee798bf8f11d727179ca3da64a9.tar.xz |
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: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'diff.c')
-rw-r--r-- | diff.c | 6 |
1 files changed, 6 insertions, 0 deletions
@@ -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, |