Johannes Schindelin <Johannes.Schindelin@xxxxxx> writes: > Unfortunately, we cannot reuse the result of that function, which > would be cleaner: there are more users than just git log. Most > notably, git-archive with "$Format:...$" substitution. That makes sense. > diff --git a/pretty.c b/pretty.c > index 490cede..241e91c 100644 > --- a/pretty.c > +++ b/pretty.c > @@ -393,6 +393,7 @@ void format_commit_message(const struct commit *commit, > int i; > enum { HEADER, SUBJECT, BODY } state; > const char *msg = commit->buffer; > + char *active = interp_find_active(format, table, ARRAY_SIZE(table)); > ... > + if (active[IHASH]) > + interp_set_entry(table, IHASH, > + sha1_to_hex(commit->object.sha1)); > + if (active[IHASH_ABBREV]) > + interp_set_entry(table, IHASH_ABBREV, > find_unique_abbrev(commit->object.sha1, > DEFAULT_ABBREV)); Instead of allocating a separate array and freeing at the end, wouldn't it make more sense to have a bitfield that records what is used by the format string inside the array elements? - To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html