diff options
| author | Tim Nordell <tim.nordell@logicpd.com> | 2016-02-26 14:58:41 -0600 | 
|---|---|---|
| committer | Jason A. Donenfeld <Jason@zx2c4.com> | 2016-05-12 17:19:20 +0200 | 
| commit | 59d8fa1a62e7c19911fdf7ee9ceb0fdf8fa3331c (patch) | |
| tree | a7215ee7bed77029a7940e3fb28b037d7b7c890f | |
| parent | 499b23979cd29513df16e4c2acce934932e09f7a (diff) | |
ui-log: Simplify decoration code
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@logicpd.com>
| -rw-r--r-- | ui-log.c | 46 | 
1 files changed, 22 insertions, 24 deletions
| @@ -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); +		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); -		} -		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); +				ctx.qry.vpath, 0, NULL, NULL, +				ctx.qry.showmsg, 0); +			break; +		case DECORATION_REF_TAG:  			cgit_tag_link(buf, NULL, "tag-deco", buf); -		} -		else if (starts_with(deco->name, "refs/remotes/")) { +			break; +		case DECORATION_REF_REMOTE:  			if (!ctx.repo->enable_remote_branches) -				goto next; -			strncpy(buf, deco->name + 13, sizeof(buf) - 1); +				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); -		} -		else { -			strncpy(buf, deco->name, sizeof(buf) - 1); +				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); +					oid_to_hex(&commit->object.oid), +					ctx.qry.vpath); +			break;  		} -next:  		deco = deco->next;  	}  	html("</span>"); | 
