return;
html("<span class='decoration'>");
while (deco) {
- strncpy(buf, prettify_refname(deco->name), sizeof(buf) - 1);
+ struct object_id peeled;
+ int is_annotated = 0;
+ strlcpy(buf, prettify_refname(deco->name), sizeof(buf));
switch(deco->type) {
case DECORATION_NONE:
/* If the git-core doesn't recognize it,
ctx.qry.showmsg, 0);
break;
case DECORATION_REF_TAG:
- cgit_tag_link(buf, NULL, "tag-deco", buf);
+ if (!peel_ref(deco->name, &peeled))
+ is_annotated = !oidcmp(&commit->object.oid, &peeled);
+ cgit_tag_link(buf, NULL, is_annotated ? "tag-annotated-deco" : "tag-deco", buf);
break;
case DECORATION_REF_REMOTE:
if (!ctx.repo->enable_remote_branches)
rem_lines = 0;
revs->diffopt.flags.recursive = 1;
- diff_tree_oid(&parent->tree->object.oid,
- &commit->tree->object.oid,
+ diff_tree_oid(&parent->maybe_tree->object.oid,
+ &commit->maybe_tree->object.oid,
"", &revs->diffopt);
diffcore_std(&revs->diffopt);
strbuf_add(&msgbuf, "\n\n", 2);
/* Place wrap_symbol at position i in info->subject */
- strcpy(info->subject + i, wrap_symbol);
+ strlcpy(info->subject + i, wrap_symbol, subject_len - i + 1);
}
}
cgit_commit_link(info->subject, NULL, NULL, ctx.qry.head,
}
void cgit_print_log(const char *tip, int ofs, int cnt, char *grep, char *pattern,
- char *path, int pager, int commit_graph, int commit_sort)
+ const char *path, int pager, int commit_graph, int commit_sort)
{
struct rev_info rev;
struct commit *commit;
for (i = 0; i < ofs && (commit = get_revision(&rev)) != NULL; /* nop */) {
if (show_commit(commit, &rev))
i++;
- free_commit_buffer(commit);
+ free_commit_buffer(the_repository->parsed_objects, commit);
free_commit_list(commit->parents);
commit->parents = NULL;
}
i++;
print_commit(commit, &rev);
}
- free_commit_buffer(commit);
+ free_commit_buffer(the_repository->parsed_objects, commit);
free_commit_list(commit->parents);
commit->parents = NULL;
}