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 <[email protected]>

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 <[email protected]>

> 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
> [email protected]
> http://lists.zx2c4.com/mailman/listinfo/cgit
_______________________________________________
CGit mailing list
[email protected]
http://lists.zx2c4.com/mailman/listinfo/cgit

Reply via email to