X-Git-Url: https://gitweb.ps.run/ps-cgit/blobdiff_plain/1dd53e3a2ffec730ec27ebe15b3d63e0b417a544..2fc008d6dea2456548825c973a5516b5cdfd9c8c:/ui-log.c diff --git a/ui-log.c b/ui-log.c index 8e36fba..3bcb657 100644 --- a/ui-log.c +++ b/ui-log.c @@ -65,7 +65,9 @@ void show_commit_decorations(struct commit *commit) return; html(""); 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, @@ -77,7 +79,9 @@ void show_commit_decorations(struct commit *commit) 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) @@ -149,8 +153,8 @@ static int show_commit(struct commit *commit, struct rev_info *revs) 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); @@ -230,7 +234,7 @@ static void print_commit(struct commit *commit, struct rev_info *revs) 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,