diff options
author | Wolfgang Wiedmeyer <wolfgit@wiedmeyer.de> | 2016-03-15 21:00:36 +0100 |
---|---|---|
committer | Wolfgang Wiedmeyer <wolfgit@wiedmeyer.de> | 2016-03-15 21:00:36 +0100 |
commit | 73eaec8b7aaa02e77cd475ccfdb117e188895457 (patch) | |
tree | 9bba8659c62de209331edf2685bf7372f2ba3226 /cmd.c | |
parent | d0f10b314dca7c6929b6fe8fa4cb5af10bcf8c2d (diff) | |
parent | 39735d95ca8775204ed4c5f306009707f7da79c6 (diff) | |
download | pkg-cgit-73eaec8b7aaa02e77cd475ccfdb117e188895457.zip pkg-cgit-73eaec8b7aaa02e77cd475ccfdb117e188895457.tar.gz pkg-cgit-73eaec8b7aaa02e77cd475ccfdb117e188895457.tar.bz2 |
Merge branch 'master' of git://git.zx2c4.com/cgit
Diffstat (limited to 'cmd.c')
-rw-r--r-- | cmd.c | 14 |
1 files changed, 12 insertions, 2 deletions
@@ -39,16 +39,26 @@ static void atom_fn(void) static void about_fn(void) { if (ctx.repo) { + size_t path_info_len = ctx.env.path_info ? strlen(ctx.env.path_info) : 0; if (!ctx.qry.path && ctx.qry.url[strlen(ctx.qry.url) - 1] != '/' && - ctx.env.path_info[strlen(ctx.env.path_info) - 1] != '/') { + (!path_info_len || ctx.env.path_info[path_info_len - 1] != '/')) { char *currenturl = cgit_currenturl(); char *redirect = fmtalloc("%s/", currenturl); cgit_redirect(redirect, true); free(currenturl); free(redirect); - } else + } else if (ctx.repo->readme.nr) cgit_print_repo_readme(ctx.qry.path); + else if (ctx.repo->homepage) + cgit_redirect(ctx.repo->homepage, false); + else { + char *currenturl = cgit_currenturl(); + char *redirect = fmtalloc("%s../", currenturl); + cgit_redirect(redirect, false); + free(currenturl); + free(redirect); + } } else cgit_print_site_readme(); } |