[PATCH 2/2] ui-log: Simplify decoration code
John Keeping
john at keeping.me.uk
Sun Feb 28 13:46:43 CET 2016
On Fri, Feb 26, 2016 at 02:58:41PM -0600, Tim Nordell wrote:
> The decoration code inside of git returns the decoration type, so
> utilize this to create the decoration spans. Additionally, use
> prettify_refname(...) to get the shorter name for the ref.
>
> Signed-off-by: Tim Nordell <tim.nordell at logicpd.com>
Minor style issue that all the "case" arms should be shifted to the
left, but we're already inconsistent on that, so:
Reviewed-by: John Keeping <john at keeping.me.uk>
> diff --git a/ui-log.c b/ui-log.c
> index 62881ce..fc215d6 100644
> --- a/ui-log.c
> +++ b/ui-log.c
> @@ -65,36 +65,34 @@ void show_commit_decorations(struct commit *commit)
> return;
> html("<span class='decoration'>");
> while (deco) {
> - if (starts_with(deco->name, "refs/heads/")) {
> - strncpy(buf, deco->name + 11, sizeof(buf) - 1);
> - cgit_log_link(buf, NULL, "branch-deco", buf, NULL,
> - ctx.qry.vpath, 0, NULL, NULL,
> - ctx.qry.showmsg, 0);
> - }
> - else if (starts_with(deco->name, "tag: refs/tags/")) {
> - strncpy(buf, deco->name + 15, sizeof(buf) - 1);
> - cgit_tag_link(buf, NULL, "tag-deco", buf);
> - }
> - else if (starts_with(deco->name, "refs/tags/")) {
> - strncpy(buf, deco->name + 10, sizeof(buf) - 1);
> - cgit_tag_link(buf, NULL, "tag-deco", buf);
> - }
> - else if (starts_with(deco->name, "refs/remotes/")) {
> - if (!ctx.repo->enable_remote_branches)
> - goto next;
> - strncpy(buf, deco->name + 13, sizeof(buf) - 1);
> - cgit_log_link(buf, NULL, "remote-deco", NULL,
> - oid_to_hex(&commit->object.oid),
> - ctx.qry.vpath, 0, NULL, NULL,
> - ctx.qry.showmsg, 0);
> - }
> - else {
> - strncpy(buf, deco->name, sizeof(buf) - 1);
> - cgit_commit_link(buf, NULL, "deco", ctx.qry.head,
> - oid_to_hex(&commit->object.oid),
> - ctx.qry.vpath);
> + strncpy(buf, prettify_refname(deco->name), sizeof(buf) - 1);
> + switch(deco->type) {
> + case DECORATION_NONE:
> + /* If the git-core doesn't recognize it,
> + * don't display anything. */
> + break;
> + case DECORATION_REF_LOCAL:
> + cgit_log_link(buf, NULL, "branch-deco", buf, NULL,
> + ctx.qry.vpath, 0, NULL, NULL,
> + ctx.qry.showmsg, 0);
> + break;
> + case DECORATION_REF_TAG:
> + cgit_tag_link(buf, NULL, "tag-deco", buf);
> + break;
> + case DECORATION_REF_REMOTE:
> + if (!ctx.repo->enable_remote_branches)
> + break;
> + cgit_log_link(buf, NULL, "remote-deco", NULL,
> + oid_to_hex(&commit->object.oid),
> + ctx.qry.vpath, 0, NULL, NULL,
> + ctx.qry.showmsg, 0);
> + break;
> + default:
> + cgit_commit_link(buf, NULL, "deco", ctx.qry.head,
> + oid_to_hex(&commit->object.oid),
> + ctx.qry.vpath);
> + break;
> }
> -next:
> deco = deco->next;
> }
> html("</span>");
> --
> 2.4.9
>
> _______________________________________________
> CGit mailing list
> CGit at lists.zx2c4.com
> http://lists.zx2c4.com/mailman/listinfo/cgit
More information about the CGit
mailing list