@ -133,7 +133,7 @@ char *cgit_currurl()
return fmt ( " %s/ " , ctx . cfg . virtual_root ) ;
}
static void site_url ( const char * page , const char * search , int ofs )
static void site_url ( const char * page , const char * search , const char * sort , int ofs )
{
char * delim = " ? " ;
@ -154,6 +154,12 @@ static void site_url(const char *page, const char *search, int ofs)
html_attr ( search ) ;
delim = " & " ;
}
if ( sort ) {
html ( delim ) ;
html ( " s= " ) ;
html_attr ( sort ) ;
delim = " & " ;
}
if ( ofs ) {
html ( delim ) ;
htmlf ( " ofs=%d " , ofs ) ;
@ -161,7 +167,7 @@ static void site_url(const char *page, const char *search, int ofs)
}
static void site_link ( const char * page , const char * name , const char * title ,
const char * class , const char * search , int ofs )
const char * class , const char * search , const char * sort , int ofs )
{
html ( " <a " ) ;
if ( title ) {
@ -175,16 +181,16 @@ static void site_link(const char *page, const char *name, const char *title,
html ( " ' " ) ;
}
html ( " href=' " ) ;
site_url ( page , search , ofs ) ;
site_url ( page , search , sort , ofs ) ;
html ( " '> " ) ;
html_txt ( name ) ;
html ( " </a> " ) ;
}
void cgit_index_link ( const char * name , const char * title , const char * class ,
const char * pattern , int ofs )
const char * pattern , const char * sort , int ofs )
{
site_link ( NULL , name , title , class , pattern , ofs ) ;
site_link ( NULL , name , title , class , pattern , sort , ofs ) ;
}
static char * repolink ( const char * title , const char * class , const char * page ,
@ -428,7 +434,7 @@ void cgit_self_link(char *name, const char *title, const char *class,
struct cgit_context * ctx )
{
if ( ! strcmp ( ctx - > qry . page , " repolist " ) )
return cgit_index_link ( name , title , class , ctx - > qry . search ,
return cgit_index_link ( name , title , class , ctx - > qry . search , ctx - > qry . sort ,
ctx - > qry . ofs ) ;
else if ( ! strcmp ( ctx - > qry . page , " summary " ) )
return cgit_summary_link ( name , title , class , ctx - > qry . head ) ;
@ -782,7 +788,7 @@ static void print_header(struct cgit_context *ctx)
html ( " <td class='main'> " ) ;
if ( ctx - > repo ) {
cgit_index_link ( " index " , NULL , NULL , NULL , 0 ) ;
cgit_index_link ( " index " , NULL , NULL , NULL , NULL , 0 ) ;
html ( " : " ) ;
cgit_summary_link ( ctx - > repo - > name , ctx - > repo - > name , NULL , NULL ) ;
html ( " </td><td class='form'> " ) ;
@ -858,10 +864,10 @@ void cgit_print_pageheader(struct cgit_context *ctx)
html ( " <input type='submit' value='search'/> \n " ) ;
html ( " </form> \n " ) ;
} else {
site_link ( NULL , " index " , NULL , hc ( ctx , " repolist " ) , NULL , 0 ) ;
site_link ( NULL , " index " , NULL , hc ( ctx , " repolist " ) , NULL , NULL , 0 ) ;
if ( ctx - > cfg . root_readme )
site_link ( " about " , " about " , NULL , hc ( ctx , " about " ) ,
NULL , 0 ) ;
NULL , NULL , 0 ) ;
html ( " </td><td class='form'> " ) ;
html ( " <form method='get' action=' " ) ;
html_attr ( cgit_rooturl ( ) ) ;