From mboxrd@z Thu Jan 1 00:00:00 1970 From: john at keeping.me.uk (John Keeping) Date: Sat, 30 Sep 2017 13:08:46 +0100 Subject: [PATCH 5/5] ui-tree: link to blame UI if enabled In-Reply-To: <20170927224331.26494-6-whydoubt@gmail.com> References: <20170923033848.5922-1-whydoubt@gmail.com> <20170927224331.26494-1-whydoubt@gmail.com> <20170927224331.26494-6-whydoubt@gmail.com> Message-ID: <20170930120846.GB25019@john.keeping.me.uk> On Wed, Sep 27, 2017 at 05:43:31PM -0500, Jeff Smith wrote: > Create links to the blame page. > > Signed-off-by: Jeff Smith Reviewed-by: John Keeping > --- > 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 > + * Copyright (C) 2006-2017 cgit Development Team > * > * 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 > + * Copyright (C) 2006-2017 cgit Development Team > * > * 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("\n"); > free(name); > strbuf_release(&fullpath); > -- > 2.9.4 > > _______________________________________________ > CGit mailing list > CGit at lists.zx2c4.com > https://lists.zx2c4.com/mailman/listinfo/cgit