diff options
author | Junio C Hamano <junkio@cox.net> | 2005-05-23 12:07:55 -0700 |
---|---|---|
committer | Linus Torvalds <torvalds@ppc970.osdl.org> | 2005-05-23 12:17:09 -0700 |
commit | 5831b563a442e7c3198a444a51d8caba4d072506 (patch) | |
tree | 770a89b014c4df5b3320e1c8bdd5a39abb719646 /diff-tree.c | |
parent | 046aa6440fdf9a94df5e2f0609bef5d7415ff94a (diff) | |
download | git-5831b563a442e7c3198a444a51d8caba4d072506.tar.gz |
[PATCH] NUL terminate diff-tree header lines under -z.
Thomas Glanzmann noticed that diff-tree -z HEAD piped to
diff-helper -z did not work. Since diff-helper -z expects NUL
terminated lines, we should generate such.
The output side of the diff-helper should always be using '\n'
termination; earlier it used the same line_termination used for
the input side, which was a mistake.
Signed-off-by: Junio C Hamano <junkio@cox.net>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'diff-tree.c')
-rw-r--r-- | diff-tree.c | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/diff-tree.c b/diff-tree.c index 0fd28f1288..2ec0d6fa81 100644 --- a/diff-tree.c +++ b/diff-tree.c @@ -277,7 +277,18 @@ static int call_diff_flush(void) if (nr_paths) diffcore_pathspec(paths); if (header) { - printf("%s", header); + if (diff_output_format == DIFF_FORMAT_MACHINE) { + const char *ep, *cp; + for (cp = header; *cp; cp = ep) { + ep = strchr(cp, '\n'); + if (ep == 0) ep = cp + strlen(cp); + printf("%.*s%c", ep-cp, cp, 0); + if (*ep) ep++; + } + } + else { + printf("%s", header); + } header = NULL; } diff_flush(diff_output_format); |