summaryrefslogtreecommitdiff
path: root/combine-diff.c
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2013-02-08 15:29:07 -0800
committerJunio C Hamano <gitster@pobox.com>2013-02-08 15:29:07 -0800
commit4dd7c77d19d42f6981ba4cdcda91755e5587cc28 (patch)
tree0003225d8e58ad22ce7f23beb9d5c98df4518369 /combine-diff.c
parentecf6778e8ef243dd9b34eef57212c44baffb13a2 (diff)
parentedbc00e76d29213010db947d8d7bff3baab12a35 (diff)
downloadgit-4dd7c77d19d42f6981ba4cdcda91755e5587cc28.tar.gz
Merge branch 'jc/combine-diff-many-parents'
We used to have an arbitrary 32 limit for combined diff input, resulting in incorrect number of leading colons shown when showing the "--raw --cc" output. * jc/combine-diff-many-parents: t4038: add tests for "diff --cc --raw <trees>" combine-diff: lift 32-way limit of combined diff
Diffstat (limited to 'combine-diff.c')
-rw-r--r--combine-diff.c21
1 files changed, 7 insertions, 14 deletions
diff --git a/combine-diff.c b/combine-diff.c
index bb1cc96c4e..7f6187f9cd 100644
--- a/combine-diff.c
+++ b/combine-diff.c
@@ -982,14 +982,10 @@ static void show_patch_diff(struct combine_diff_path *elem, int num_parent,
free(sline);
}
-#define COLONS "::::::::::::::::::::::::::::::::"
-
static void show_raw_diff(struct combine_diff_path *p, int num_parent, struct rev_info *rev)
{
struct diff_options *opt = &rev->diffopt;
- int i, offset;
- const char *prefix;
- int line_termination, inter_name_termination;
+ int line_termination, inter_name_termination, i;
line_termination = opt->line_termination;
inter_name_termination = '\t';
@@ -1000,17 +996,14 @@ static void show_raw_diff(struct combine_diff_path *p, int num_parent, struct re
show_log(rev);
if (opt->output_format & DIFF_FORMAT_RAW) {
- offset = strlen(COLONS) - num_parent;
- if (offset < 0)
- offset = 0;
- prefix = COLONS + offset;
+ /* As many colons as there are parents */
+ for (i = 0; i < num_parent; i++)
+ putchar(':');
/* Show the modes */
- for (i = 0; i < num_parent; i++) {
- printf("%s%06o", prefix, p->parent[i].mode);
- prefix = " ";
- }
- printf("%s%06o", prefix, p->mode);
+ for (i = 0; i < num_parent; i++)
+ printf("%06o ", p->parent[i].mode);
+ printf("%06o", p->mode);
/* Show sha1's */
for (i = 0; i < num_parent; i++)