return retval;
}
-static const char *generate_header(struct rev_info *opt,
+static const char *get_header(struct rev_info *opt,
const unsigned char *commit_sha1,
const unsigned char *parent_sha1,
const struct commit *commit)
int abbrev = opt->diffopt.abbrev;
const char *msg = commit->buffer;
+ if (opt->use_precomputed_header)
+ return opt->use_precomputed_header;
+
if (!opt->verbose_header)
return sha1_to_hex(commit_sha1);
offset += pretty_print_commit(opt->commit_format, commit, len,
this_header + offset,
sizeof(this_header) - offset, abbrev);
+ return this_header;
+}
+
+static const char *generate_header(struct rev_info *opt,
+ const unsigned char *commit_sha1,
+ const unsigned char *parent_sha1,
+ const struct commit *commit)
+{
+ const char *header = get_header(opt, commit_sha1, parent_sha1, commit);
+
if (opt->always_show_header) {
- puts(this_header);
- return NULL;
+ puts(header);
+ header = NULL;
}
- return this_header;
+ return header;
}
static int do_diff_combined(struct rev_info *opt, struct commit *commit)