diff options
author | Junio C Hamano <junkio@cox.net> | 2006-03-25 12:16:17 -0800 |
---|---|---|
committer | Junio C Hamano <junkio@cox.net> | 2006-03-25 16:50:00 -0800 |
commit | 3ce8f08944e614813c7dfb212a88b7c4e3b443bc (patch) | |
tree | 0ea80c1ceb83a898851ff8d097db9a5b157e0189 /xdiff/xutils.c | |
parent | 621c53cc082299eaf69e9f2dc0274547c7d87fb0 (diff) | |
download | git-3ce8f08944e614813c7dfb212a88b7c4e3b443bc.tar.gz git-3ce8f08944e614813c7dfb212a88b7c4e3b443bc.tar.xz |
built-in diff: minimum tweaks
This fixes up a couple of minor issues with the real built-in
diff to be more usable:
- Omit ---/+++ header unless we emit diff output;
- Detect and punt binary diff like GNU does;
- Honor GIT_DIFF_OPTS minimally (only -u<number> and
--unified=<number> are currently supported);
- Omit line count of 1 from "@@ -l,k +m,n @@" hunk header
(i.e. when k == 1 or n == 1)
- Adjust testsuite for the lack of -p support.
Signed-off-by: Junio C Hamano <junkio@cox.net>
Diffstat (limited to 'xdiff/xutils.c')
-rw-r--r-- | xdiff/xutils.c | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/xdiff/xutils.c b/xdiff/xutils.c index b68afa25c..8221806f7 100644 --- a/xdiff/xutils.c +++ b/xdiff/xutils.c @@ -245,20 +245,24 @@ int xdl_emit_hunk_hdr(long s1, long c1, long s2, long c2, xdemitcb_t *ecb) { nb += xdl_num_out(buf + nb, c1 ? s1: 0); - memcpy(buf + nb, ",", 1); - nb += 1; + if (c1 != 1) { + memcpy(buf + nb, ",", 1); + nb += 1; - nb += xdl_num_out(buf + nb, c1); + nb += xdl_num_out(buf + nb, c1); + } memcpy(buf + nb, " +", 2); nb += 2; nb += xdl_num_out(buf + nb, c2 ? s2: 0); - memcpy(buf + nb, ",", 1); - nb += 1; + if (c2 != 1) { + memcpy(buf + nb, ",", 1); + nb += 1; - nb += xdl_num_out(buf + nb, c2); + nb += xdl_num_out(buf + nb, c2); + } memcpy(buf + nb, " @@\n", 4); nb += 4; |