Re: [PATCH] git-diff: fix combined diff
- From
Junio C Hamano <junkio@cox.net>
- Date
- Feb 23, 2007, 06:09 UTC
- Message-ID
- <7v3b4xbe1i.fsf@assigned-by-dhcp.cox.net>
- In-Reply-To
- <7vbqjlbg8y.fsf@assigned-by-dhcp.cox.net>
Junio C Hamano <junkio@cox.net> writes:
Show 5 quoted lines
> With this, > > $ git diff maint master next pu > > starts working as planned ;-).
By the way, your commit log message does not seem to say why it is a fix correctly. Here is what I replaced it with.
-- >8 -- cut here -- >8 -- From: Johannes Schindelin <Johannes.Schindelin@gmx.de> Date: Fri, 23 Feb 2007 05:20:32 +0100 Subject: [PATCH] git-diff: fix combined diff
The code forgets that typecast binds tighter than addition, in other words:
(cast *)array + i === ((cast *)array) + i
Signed-off-by: Johannes Schindelin <Johannes.Schindelin@gmx.de> Signed-off-by: Junio C Hamano <junkio@cox.net> --- builtin-diff.c | 3 ++- 1 files changed, 2 insertions(+), 1 deletions(-)
diff --git a/builtin-diff.c b/builtin-diff.c index a659020..c387ebb 100644 --- a/builtin-diff.c +++ b/builtin-diff.c @@ -192,7 +192,8 @@ static int builtin_diff_combined(struct rev_info *revs, parent = xmalloc(ents * sizeof(*parent)); /* Again, the revs are all reverse */ for (i = 0; i < ents; i++) - hashcpy((unsigned char*)parent + i, ent[ents - 1 - i].item->sha1); + hashcpy((unsigned char *)(parent + i), + ent[ents - 1 - i].item->sha1); diff_tree_combined(parent[0], parent + 1, ents - 1, revs->dense_combined_merges, revs); return 0;
-- 1.5.0.1.619.g04c5c