void add_name_decoration(enum decoration_type type, const char *name, struct object *obj)
{
- int nlen = strlen(name);
- struct name_decoration *res = xmalloc(sizeof(*res) + nlen + 1);
- memcpy(res->name, name, nlen + 1);
+ struct name_decoration *res;
+ FLEX_ALLOC_STR(res, name, name);
res->type = type;
res->next = add_decoration(&name_decoration, obj, res);
}
if (!obj)
break;
if (!obj->parsed)
- parse_object(obj->sha1);
+ parse_object(obj->oid.hash);
add_name_decoration(DECORATION_REF_TAG, refname, obj);
}
return 0;
struct commit_list *p;
for (p = commit->parents; p ; p = p->next) {
struct commit *parent = p->item;
- printf(" %s", find_unique_abbrev(parent->object.sha1, abbrev));
+ printf(" %s", find_unique_abbrev(parent->object.oid.hash, abbrev));
}
}
{
struct commit_list *p = lookup_decoration(&opt->children, &commit->object);
for ( ; p; p = p->next) {
- printf(" %s", find_unique_abbrev(p->item->object.sha1, abbrev));
+ printf(" %s", find_unique_abbrev(p->item->object.oid.hash, abbrev));
}
}
{
const char *subject = NULL;
const char *extra_headers = opt->extra_headers;
- const char *name = sha1_to_hex(commit->object.sha1);
+ const char *name = oid_to_hex(opt->zero_commit ?
+ &null_oid : &commit->object.oid);
*need_8bit_cte_p = 0; /* unknown */
if (opt->total > 0) {
const struct commit_list *parent;
for (nth = 0, parent = commit->parents; parent; parent = parent->next) {
- if (!hashcmp(parent->item->object.sha1, sha1))
+ if (!hashcmp(parent->item->object.oid.hash, sha1))
return nth;
nth++;
}
if (parse_tag_buffer(tag, extra->value, extra->len))
strbuf_addstr(&verify_message, "malformed mergetag\n");
else if (is_common_merge(commit) &&
- !hashcmp(tag->tagged->sha1,
- commit->parents->next->item->object.sha1))
+ !oidcmp(&tag->tagged->oid,
+ &commit->parents->next->item->object.oid))
strbuf_addf(&verify_message,
"merged tag '%s'\n", tag->tag);
- else if ((nth = which_parent(tag->tagged->sha1, commit)) < 0)
+ else if ((nth = which_parent(tag->tagged->oid.hash, commit)) < 0)
strbuf_addf(&verify_message, "tag %s names a non-parent %s\n",
- tag->tag, tag->tagged->sha1);
+ tag->tag, tag->tagged->oid.hash);
else
strbuf_addf(&verify_message,
"parent #%d, tagged '%s'\n", nth + 1, tag->tag);
if (!opt->graph)
put_revision_mark(opt, commit);
- fputs(find_unique_abbrev(commit->object.sha1, abbrev_commit), stdout);
+ fputs(find_unique_abbrev(commit->object.oid.hash, abbrev_commit), stdout);
if (opt->print_parents)
show_parents(commit, abbrev_commit);
if (opt->children.name)
if (!opt->graph)
put_revision_mark(opt, commit);
- fputs(find_unique_abbrev(commit->object.sha1, abbrev_commit),
+ fputs(find_unique_abbrev(commit->object.oid.hash, abbrev_commit),
stdout);
if (opt->print_parents)
show_parents(commit, abbrev_commit);
show_children(opt, commit, abbrev_commit);
if (parent)
printf(" (from %s)",
- find_unique_abbrev(parent->object.sha1,
+ find_unique_abbrev(parent->object.oid.hash,
abbrev_commit));
fputs(diff_get_color_opt(&opt->diffopt, DIFF_RESET), stdout);
show_decorations(opt, commit);
struct strbuf notebuf = STRBUF_INIT;
raw = (opt->commit_format == CMIT_FMT_USERFORMAT);
- format_display_notes(commit->object.sha1, ¬ebuf,
+ format_display_notes(commit->object.oid.hash, ¬ebuf,
get_log_output_encoding(), raw);
ctx.notes_message = notebuf.len
? strbuf_detach(¬ebuf, NULL)
ctx.fmt = opt->commit_format;
ctx.mailmap = opt->mailmap;
ctx.color = opt->diffopt.use_color;
+ ctx.expand_tabs_in_log = opt->expand_tabs_in_log;
ctx.output_encoding = get_log_output_encoding();
if (opt->from_ident.mail_begin && opt->from_ident.name_begin)
ctx.from_ident = &opt->from_ident;
{
int showed_log;
struct commit_list *parents;
- unsigned const char *sha1;
+ struct object_id *oid;
if (!opt->diff && !DIFF_OPT_TST(&opt->diffopt, EXIT_WITH_STATUS))
return 0;
parse_commit_or_die(commit);
- sha1 = commit->tree->object.sha1;
+ oid = &commit->tree->object.oid;
/* Root commit? */
parents = get_saved_parents(opt, commit);
if (!parents) {
if (opt->show_root_diff) {
- diff_root_tree_sha1(sha1, "", &opt->diffopt);
+ diff_root_tree_sha1(oid->hash, "", &opt->diffopt);
log_tree_diff_flush(opt);
}
return !opt->loginfo;
* we merged _in_.
*/
parse_commit_or_die(parents->item);
- diff_tree_sha1(parents->item->tree->object.sha1,
- sha1, "", &opt->diffopt);
+ diff_tree_sha1(parents->item->tree->object.oid.hash,
+ oid->hash, "", &opt->diffopt);
log_tree_diff_flush(opt);
return !opt->loginfo;
}
struct commit *parent = parents->item;
parse_commit_or_die(parent);
- diff_tree_sha1(parent->tree->object.sha1,
- sha1, "", &opt->diffopt);
+ diff_tree_sha1(parent->tree->object.oid.hash,
+ oid->hash, "", &opt->diffopt);
log_tree_diff_flush(opt);
showed_log |= !opt->loginfo;