[PATCH 5/5] ui-tree: link to blame UI if enabled

John Keeping john at keeping.me.uk
Sat Sep 30 14:08:46 CEST 2017


On Wed, Sep 27, 2017 at 05:43:31PM -0500, Jeff Smith wrote:
> Create links to the blame page.
> 
> Signed-off-by: Jeff Smith <whydoubt at gmail.com>

Reviewed-by: John Keeping <john at keeping.me.uk>

> ---
>  ui-shared.c | 20 +++++++++++++++++---
>  ui-shared.h |  3 +++
>  ui-tree.c   | 10 +++++++++-
>  3 files changed, 29 insertions(+), 4 deletions(-)
> 
> diff --git a/ui-shared.c b/ui-shared.c
> index ee96755..f75338a 100644
> --- a/ui-shared.c
> +++ b/ui-shared.c
> @@ -1,6 +1,6 @@
>  /* ui-shared.c: common web output functions
>   *
> - * Copyright (C) 2006-2014 cgit Development Team <cgit at lists.zx2c4.com>
> + * Copyright (C) 2006-2017 cgit Development Team <cgit at lists.zx2c4.com>
>   *
>   * Licensed under GNU General Public License v2
>   *   (see COPYING for full license text)
> @@ -304,6 +304,12 @@ void cgit_plain_link(const char *name, const char *title, const char *class,
>  	reporevlink("plain", name, title, class, head, rev, path);
>  }
>  
> +void cgit_blame_link(const char *name, const char *title, const char *class,
> +		     const char *head, const char *rev, const char *path)
> +{
> +	reporevlink("blame", name, title, class, head, rev, path);
> +}
> +
>  void cgit_log_link(const char *name, const char *title, const char *class,
>  		   const char *head, const char *rev, const char *path,
>  		   int ofs, const char *grep, const char *pattern, int showmsg,
> @@ -478,6 +484,10 @@ static void cgit_self_link(char *name, const char *title, const char *class)
>  		cgit_plain_link(name, title, class, ctx.qry.head,
>  				ctx.qry.has_sha1 ? ctx.qry.sha1 : NULL,
>  				ctx.qry.path);
> +	else if (!strcmp(ctx.qry.page, "blame"))
> +		cgit_blame_link(name, title, class, ctx.qry.head,
> +				ctx.qry.has_sha1 ? ctx.qry.sha1 : NULL,
> +				ctx.qry.path);
>  	else if (!strcmp(ctx.qry.page, "log"))
>  		cgit_log_link(name, title, class, ctx.qry.head,
>  			      ctx.qry.has_sha1 ? ctx.qry.sha1 : NULL,
> @@ -983,8 +993,12 @@ void cgit_print_pageheader(void)
>  		cgit_log_link("log", NULL, hc("log"), ctx.qry.head,
>  			      NULL, ctx.qry.vpath, 0, NULL, NULL,
>  			      ctx.qry.showmsg, ctx.qry.follow);
> -		cgit_tree_link("tree", NULL, hc("tree"), ctx.qry.head,
> -			       ctx.qry.sha1, ctx.qry.vpath);
> +		if (ctx.qry.page && !strcmp(ctx.qry.page, "blame"))
> +			cgit_blame_link("blame", NULL, hc("blame"), ctx.qry.head,
> +				        ctx.qry.sha1, ctx.qry.vpath);
> +		else
> +			cgit_tree_link("tree", NULL, hc("tree"), ctx.qry.head,
> +				       ctx.qry.sha1, ctx.qry.vpath);
>  		cgit_commit_link("commit", NULL, hc("commit"),
>  				 ctx.qry.head, ctx.qry.sha1, ctx.qry.vpath);
>  		cgit_diff_link("diff", NULL, hc("diff"), ctx.qry.head,
> diff --git a/ui-shared.h b/ui-shared.h
> index 18e3994..cc9b4c6 100644
> --- a/ui-shared.h
> +++ b/ui-shared.h
> @@ -26,6 +26,9 @@ extern void cgit_tree_link(const char *name, const char *title,
>  extern void cgit_plain_link(const char *name, const char *title,
>  			    const char *class, const char *head,
>  			    const char *rev, const char *path);
> +extern void cgit_blame_link(const char *name, const char *title,
> +			    const char *class, const char *head,
> +			    const char *rev, const char *path);
>  extern void cgit_log_link(const char *name, const char *title,
>  			  const char *class, const char *head, const char *rev,
>  			  const char *path, int ofs, const char *grep,
> diff --git a/ui-tree.c b/ui-tree.c
> index 12eaaf0..27c9003 100644
> --- a/ui-tree.c
> +++ b/ui-tree.c
> @@ -1,6 +1,6 @@
>  /* ui-tree.c: functions for tree output
>   *
> - * Copyright (C) 2006-2014 cgit Development Team <cgit at lists.zx2c4.com>
> + * Copyright (C) 2006-2017 cgit Development Team <cgit at lists.zx2c4.com>
>   *
>   * Licensed under GNU General Public License v2
>   *   (see COPYING for full license text)
> @@ -110,6 +110,11 @@ static void print_object(const unsigned char *sha1, char *path, const char *base
>  	htmlf("blob: %s (", sha1_to_hex(sha1));
>  	cgit_plain_link("plain", NULL, NULL, ctx.qry.head,
>  		        rev, path);
> +	if (ctx.cfg.enable_blame) {
> +		html(") (");
> +		cgit_blame_link("blame", NULL, NULL, ctx.qry.head,
> +			        rev, path);
> +	}
>  	html(")\n");
>  
>  	if (ctx.cfg.max_blob_size && size / 1024 > ctx.cfg.max_blob_size) {
> @@ -244,6 +249,9 @@ static int ls_item(const unsigned char *sha1, struct strbuf *base,
>  	if (!S_ISGITLINK(mode))
>  		cgit_plain_link("plain", NULL, "button", ctx.qry.head,
>  				walk_tree_ctx->curr_rev, fullpath.buf);
> +	if (!S_ISDIR(mode) && ctx.cfg.enable_blame)
> +		cgit_blame_link("blame", NULL, "button", ctx.qry.head,
> +				walk_tree_ctx->curr_rev, fullpath.buf);
>  	html("</td></tr>\n");
>  	free(name);
>  	strbuf_release(&fullpath);
> -- 
> 2.9.4
> 
> _______________________________________________
> CGit mailing list
> CGit at lists.zx2c4.com
> https://lists.zx2c4.com/mailman/listinfo/cgit


More information about the CGit mailing list