[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