[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