Hi Jason, > Teach cgit split the repository link in the top of repository "summary" > view. This emulates the same behaviour as it's in gitweb.
> This behaviour is not implemented for repositories which have > "repo.name" set different than "repo.url". > Signed-off-by: Petr Vorel <[email protected]> > Cc: "Jason A. Donenfeld" <[email protected]> > Cc: John Keeping <[email protected]> > Reviewed-by: John Keeping <[email protected]> > --- > v8->v9: correct free() call. > --- > cgitrc.5.txt | 4 +++- > ui-shared.c | 29 ++++++++++++++++++++++++++++- > 2 files changed, 31 insertions(+), 2 deletions(-) > diff --git a/cgitrc.5.txt b/cgitrc.5.txt > index 9fcf445..500b7ee 100644 > --- a/cgitrc.5.txt > +++ b/cgitrc.5.txt > @@ -604,7 +604,9 @@ repo.source-filter:: > repo.url:: > The relative url used to access the repository. This must be the first > - setting specified for each repo. Default value: none. > + setting specified for each repo. Unless repo.url is different from > + repo.name, cgit splits the repository link in the top of repository > + "summary" view. Default value: none. > REPOSITORY-SPECIFIC CGITRC FILE > diff --git a/ui-shared.c b/ui-shared.c > index 2e4fcd9..a7cb15c 100644 > --- a/ui-shared.c > +++ b/ui-shared.c > @@ -936,7 +936,34 @@ static void print_header(void) > if (ctx.repo) { > cgit_index_link("index", NULL, NULL, NULL, NULL, 0, 1); > html(" : "); > - cgit_summary_link(ctx.repo->name, ctx.repo->name, NULL, NULL); > + > + /* > + * NOTE: If repo.name and repo.url are different, we don't > split link as > + * it wouldn't make sense to split the path. > + */ > + if (!strcmp(ctx.repo->name, ctx.repo->url)) { > + char *name = ctx.repo->name; > + char *start = name; > + for (;;) { > + char *delim = strchr(start, '/'); > + if (delim) > + *delim = '\0'; > + > + char *url = cgit_repourl(name); > + html_link_open(url, NULL, NULL); > + free(url); > + html_ntxt(strlen(start), start); > + html_link_close(); > + > + if (!delim) > + break; > + *delim = '/'; > + html("/"); > + start = delim + 1; > + } > + } else > + cgit_summary_link(ctx.repo->name, ctx.repo->name, NULL, > NULL); > + > if (ctx.env.authenticated) { > html("</td><td class='form'>"); > html("<form method='get'>\n"); Anything preventing to merge this patch? Thanks for info. Kind regards, Petr _______________________________________________ CGit mailing list [email protected] https://lists.zx2c4.com/mailman/listinfo/cgit
