diff options
Diffstat (limited to 'ui-summary.c')
| -rw-r--r-- | ui-summary.c | 49 | 
1 files changed, 10 insertions, 39 deletions
| diff --git a/ui-summary.c b/ui-summary.c index 4bda4c2..de8a180 100644 --- a/ui-summary.c +++ b/ui-summary.c @@ -15,8 +15,10 @@ static int cgit_print_branch_cb(const char *refname, const unsigned char *sha1,  {  	struct commit *commit;  	struct commitinfo *info; -	char buf[256], *url; +	char buf[256]; +	char *ref; +	ref = xstrdup(refname);  	strncpy(buf, refname, sizeof(buf));  	commit = lookup_commit(sha1);  	// object is not really parsed at this point, because of some fallout @@ -25,21 +27,13 @@ static int cgit_print_branch_cb(const char *refname, const unsigned char *sha1,  	if (commit && !parse_commit(commit)){  		info = cgit_parse_commit(commit);  		html("<tr><td>"); -		url = cgit_pageurl(cgit_query_repo, "log", -				   fmt("h=%s", refname)); -		html_link_open(url, NULL, NULL); -		html_txt(buf); -		html_link_close(); +		cgit_log_link(ref, NULL, NULL, ref, NULL, NULL, 0);  		html("</td><td>");  		cgit_print_age(commit->date, -1, NULL);  		html("</td><td>");  		html_txt(info->author);  		html("</td><td>"); -		url = cgit_pageurl(cgit_query_repo, "commit", -				   fmt("h=%s", sha1_to_hex(sha1))); -		html_link_open(url, NULL, NULL); -		html_ntxt(cgit_max_msg_len, info->subject); -		html_link_close(); +		cgit_commit_link(info->subject, NULL, NULL, ref, NULL);  		html("</td></tr>\n");  		cgit_free_commitinfo(info);  	} else { @@ -49,33 +43,10 @@ static int cgit_print_branch_cb(const char *refname, const unsigned char *sha1,  		htmlf("*** bad ref %s ***", sha1_to_hex(sha1));  		html("</td></tr>\n");  	} +	free(ref);  	return 0;  } - -static void cgit_print_object_ref(struct object *obj) -{ -	char *page, *arg, *url; - -	if (obj->type == OBJ_COMMIT) { -		page = "commit"; -		arg = "h"; -	} else if (obj->type == OBJ_TREE) { -		page = "tree"; -		arg = "id"; -	} else { -		page = "view"; -		arg = "id"; -	} - -	url = cgit_pageurl(cgit_query_repo, page, -			   fmt("%s=%s", arg, sha1_to_hex(obj->sha1))); -	html_link_open(url, NULL, NULL); -	htmlf("%s %s", typename(obj->type), -	      sha1_to_hex(obj->sha1)); -	html_link_close(); -} -  static void print_tag_header()  {  	html("<tr class='nohover'><th class='left'>Tag</th>" @@ -104,8 +75,8 @@ static int cgit_print_tag_cb(const char *refname, const unsigned char *sha1,  		if (!header)  			print_tag_header();  		html("<tr><td>"); -		url = cgit_pageurl(cgit_query_repo, "view", -				   fmt("id=%s", sha1_to_hex(sha1))); +		url = cgit_pageurl(cgit_query_repo, "tag", +				   fmt("id=%s", refname));  		html_link_open(url, NULL, NULL);  		html_txt(buf);  		html_link_close(); @@ -116,7 +87,7 @@ static int cgit_print_tag_cb(const char *refname, const unsigned char *sha1,  		if (info->tagger)  			html(info->tagger);  		html("</td><td>"); -		cgit_print_object_ref(tag->tagged); +		cgit_object_link(tag->tagged);  		html("</td></tr>\n");  	} else {  		if (!header) @@ -124,7 +95,7 @@ static int cgit_print_tag_cb(const char *refname, const unsigned char *sha1,  		html("<tr><td>");  		html_txt(buf);  		html("</td><td colspan='2'/><td>"); -		cgit_print_object_ref(obj); +		cgit_object_link(obj);  		html("</td></tr>\n");  	}  	return 0; | 
