Merge branch 'master' of git://git.klever.net/patchwork/cgit
* 'master' of git://git.klever.net/patchwork/cgit: link raw blob from tree file view fix: changed view link to blob in summary. allow selective enabling of snapshots shorten snapshot names to repo basename introduce cgit_repobasename added snapshot filename to the link add plain uncompressed tar snapshort format introduced .tar.bz2 snapshots compress .tar.gz using gzip as a filter added a chk_non_negative check css: adjust vertical-align of commit info th cells add support for snapshot tarballs Conflicts: ui-summary.c Signed-off-by: Lars Hjemli <hjemli@gmail.com>
This commit is contained in:
41
ui-shared.c
41
ui-shared.c
@ -57,13 +57,13 @@ char *cgit_repourl(const char *reponame)
|
||||
}
|
||||
}
|
||||
|
||||
char *cgit_pageurl(const char *reponame, const char *pagename,
|
||||
const char *query)
|
||||
char *cgit_fileurl(const char *reponame, const char *pagename,
|
||||
const char *filename, const char *query)
|
||||
{
|
||||
if (cgit_virtual_root) {
|
||||
if (query)
|
||||
return fmt("%s/%s/%s/?%s", cgit_virtual_root, reponame,
|
||||
pagename, query);
|
||||
return fmt("%s/%s/%s/%s?%s", cgit_virtual_root, reponame,
|
||||
pagename, filename?filename:"", query);
|
||||
else
|
||||
return fmt("%s/%s/%s/", cgit_virtual_root, reponame,
|
||||
pagename);
|
||||
@ -75,6 +75,37 @@ char *cgit_pageurl(const char *reponame, const char *pagename,
|
||||
}
|
||||
}
|
||||
|
||||
char *cgit_pageurl(const char *reponame, const char *pagename,
|
||||
const char *query)
|
||||
{
|
||||
return cgit_fileurl(reponame,pagename,0,query);
|
||||
}
|
||||
|
||||
const char *cgit_repobasename(const char *reponame)
|
||||
{
|
||||
/* I assume we don't need to store more than one repo basename */
|
||||
static char rvbuf[1024];
|
||||
int p;
|
||||
const char *rv;
|
||||
strncpy(rvbuf,reponame,sizeof(rvbuf));
|
||||
if(rvbuf[sizeof(rvbuf)-1])
|
||||
die("cgit_repobasename: truncated repository name '%s'", reponame);
|
||||
p = strlen(rvbuf)-1;
|
||||
/* strip trailing slashes */
|
||||
while(p && rvbuf[p]=='/') rvbuf[p--]=0;
|
||||
/* strip trailing .git */
|
||||
if(p>=3 && !strncmp(&rvbuf[p-3],".git",4)) {
|
||||
p -= 3; rvbuf[p--] = 0;
|
||||
}
|
||||
/* strip more trailing slashes if any */
|
||||
while( p && rvbuf[p]=='/') rvbuf[p--]=0;
|
||||
/* find last slash in the remaining string */
|
||||
rv = strrchr(rvbuf,'/');
|
||||
if(rv)
|
||||
return ++rv;
|
||||
return rvbuf;
|
||||
}
|
||||
|
||||
char *cgit_currurl()
|
||||
{
|
||||
if (!cgit_virtual_root)
|
||||
@ -392,3 +423,5 @@ void cgit_print_snapshot_start(const char *mimetype, const char *filename,
|
||||
ttl_seconds(item->ttl)));
|
||||
html("\n");
|
||||
}
|
||||
|
||||
/* vim:set sw=8: */
|
||||
|
Reference in New Issue
Block a user