combine-diff: fix placement of deletion.

The code misplaced a raw hunk that consists of solely deleted
lines by one line.  This showed e.g. Len's 12-way octopus
(9fdb62af in the linux-2.6), kernel/power/disk.c, hunk starting
at line 95, incorrectly.

Signed-off-by: Junio C Hamano <junkio@cox.net>
This commit is contained in:
Junio C Hamano 2006-02-02 05:21:14 -08:00
parent fd4b1d2193
commit 823bcd6edc

View file

@ -235,7 +235,10 @@ static void combine_diff(const unsigned char *parent, const char *ourtmp,
*/
nb = 1;
}
lost_bucket = &sline[nb-1]; /* sline is 0 based */
if (nn == 0)
lost_bucket = &sline[nb];
else
lost_bucket = &sline[nb-1];
continue;
}
if (!lost_bucket)
@ -627,6 +630,15 @@ int show_combined_diff(struct combine_diff_path *elem, int num_parent,
else
printf("%s", elem->path);
putchar('\n');
printf("index ");
for (i = 0; i < num_parent; i++) {
printf("%s%s",
i ? ".." : "",
find_unique_abbrev(elem->parent_sha1[i],
DEFAULT_ABBREV));
}
printf("->%s\n",
find_unique_abbrev(elem->sha1, DEFAULT_ABBREV));
dump_sline(sline, cnt, num_parent);
}
if (ourtmp == ourtmp_buf)