From mboxrd@z Thu Jan 1 00:00:00 1970 From: andy at warmcat.com (Andy Green) Date: Tue, 19 Jun 2018 17:01:46 +0800 Subject: [PATCH v3 04/17] Add source page In-Reply-To: <152939875224.4492.4288866616332837866.stgit@mail.warmcat.com> References: <152939875224.4492.4288866616332837866.stgit@mail.warmcat.com> Message-ID: <152939890678.4492.16829492270402231218.stgit@mail.warmcat.com> From: John Keeping We are about to introduce rendering of content for the tree view. This source page will allow bypassing the renderer and accessing the content of the current tree view. Signed-off-by: John Keeping --- cmd.c | 6 ++++++ ui-shared.c | 14 ++++++++++++++ ui-shared.h | 3 +++ 3 files changed, 23 insertions(+) diff --git a/cmd.c b/cmd.c index 63f0ae5..56e21df 100644 --- a/cmd.c +++ b/cmd.c @@ -138,6 +138,11 @@ static void refs_fn(void) cgit_print_refs(); } +static void source_fn(void) +{ + cgit_print_tree(ctx.qry.sha1, ctx.qry.path); +} + static void snapshot_fn(void) { cgit_print_snapshot(ctx.qry.head, ctx.qry.sha1, ctx.qry.path, @@ -187,6 +192,7 @@ struct cgit_cmd *cgit_get_cmd(void) def_cmd(refs, 1, 0, 0), def_cmd(repolist, 0, 0, 0), def_cmd(snapshot, 1, 0, 0), + def_cmd(source, 1, 1, 0), def_cmd(stats, 1, 1, 0), def_cmd(summary, 1, 0, 0), def_cmd(tag, 1, 0, 0), diff --git a/ui-shared.c b/ui-shared.c index ba88106..d2985c8 100644 --- a/ui-shared.c +++ b/ui-shared.c @@ -307,6 +307,12 @@ void cgit_tree_link(const char *name, const char *title, const char *class, reporevlink("tree", name, title, class, head, rev, path); } +void cgit_source_link(const char *name, const char *title, const char *class, + const char *head, const char *rev, const char *path) +{ + reporevlink("source", name, title, class, head, rev, path); +} + void cgit_plain_link(const char *name, const char *title, const char *class, const char *head, const char *rev, const char *path) { @@ -489,6 +495,10 @@ static void cgit_self_link(char *name, const char *title, const char *class) cgit_tree_link(name, title, class, ctx.qry.head, ctx.qry.has_sha1 ? ctx.qry.sha1 : NULL, ctx.qry.path); + else if (!strcmp(ctx.qry.page, "source")) + cgit_source_link(name, title, class, ctx.qry.head, + ctx.qry.has_sha1 ? ctx.qry.sha1 : NULL, + ctx.qry.path); else if (!strcmp(ctx.qry.page, "plain")) cgit_plain_link(name, title, class, ctx.qry.head, ctx.qry.has_sha1 ? ctx.qry.sha1 : NULL, @@ -1003,6 +1013,10 @@ void cgit_print_pageheader(void) 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 if (ctx.qry.page && !strcmp(ctx.qry.page, "source")) + cgit_source_link("tree", NULL, hc("source"), + 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); diff --git a/ui-shared.h b/ui-shared.h index 4d5978b..c105b3b 100644 --- a/ui-shared.h +++ b/ui-shared.h @@ -23,6 +23,9 @@ extern void cgit_tag_link(const char *name, const char *title, extern void cgit_tree_link(const char *name, const char *title, const char *class, const char *head, const char *rev, const char *path); +extern void cgit_source_link(const char *name, const char *title, + const char *class, const char *head, + const char *rev, const char *path); extern void cgit_plain_link(const char *name, const char *title, const char *class, const char *head, const char *rev, const char *path);