@ -436,59 +436,58 @@ void cgit_stats_link(const char *name, const char *title, const char *class,
reporevlink ( " stats " , name , title , class , head , NULL , path ) ;
reporevlink ( " stats " , name , title , class , head , NULL , path ) ;
}
}
static void cgit_self_link ( char * name , const char * title , const char * class ,
static void cgit_self_link ( char * name , const char * title , const char * class )
struct cgit_context * ctx )
{
{
if ( ! strcmp ( ctx . qry . page , " repolist " ) )
if ( ! strcmp ( ctx - > qry . page , " repolist " ) )
cgit_index_link ( name , title , class , ctx . qry . search , ctx . qry . sort ,
cgit_index_link ( name , title , class , ctx - > qry . search , ctx - > qry . sort ,
ctx . qry . ofs ) ;
ctx - > qry . ofs ) ;
else if ( ! strcmp ( ctx . qry . page , " summary " ) )
else if ( ! strcmp ( ctx - > qry . page , " summary " ) )
cgit_summary_link ( name , title , class , ctx . qry . head ) ;
cgit_summary_link ( name , title , class , ctx - > qry . head ) ;
else if ( ! strcmp ( ctx . qry . page , " tag " ) )
else if ( ! strcmp ( ctx - > qry . page , " tag " ) )
cgit_tag_link ( name , title , class , ctx . qry . head ,
cgit_tag_link ( name , title , class , ctx - > qry . head ,
ctx . qry . has_sha1 ? ctx . qry . sha1 : NULL ) ;
ctx - > qry . has_sha1 ? ctx - > qry . sha1 : NULL ) ;
else if ( ! strcmp ( ctx . qry . page , " tree " ) )
else if ( ! strcmp ( ctx - > qry . page , " tree " ) )
cgit_tree_link ( name , title , class , ctx . qry . head ,
cgit_tree_link ( name , title , class , ctx - > qry . head ,
ctx . qry . has_sha1 ? ctx . qry . sha1 : NULL ,
ctx - > qry . has_sha1 ? ctx - > qry . sha1 : NULL ,
ctx . qry . path ) ;
ctx - > qry . path ) ;
else if ( ! strcmp ( ctx . qry . page , " plain " ) )
else if ( ! strcmp ( ctx - > qry . page , " plain " ) )
cgit_plain_link ( name , title , class , ctx . qry . head ,
cgit_plain_link ( name , title , class , ctx - > qry . head ,
ctx . qry . has_sha1 ? ctx . qry . sha1 : NULL ,
ctx - > qry . has_sha1 ? ctx - > qry . sha1 : NULL ,
ctx . qry . path ) ;
ctx - > qry . path ) ;
else if ( ! strcmp ( ctx . qry . page , " log " ) )
else if ( ! strcmp ( ctx - > qry . page , " log " ) )
cgit_log_link ( name , title , class , ctx . qry . head ,
cgit_log_link ( name , title , class , ctx - > qry . head ,
ctx . qry . has_sha1 ? ctx . qry . sha1 : NULL ,
ctx - > qry . has_sha1 ? ctx - > qry . sha1 : NULL ,
ctx . qry . path , ctx . qry . ofs ,
ctx - > qry . path , ctx - > qry . ofs ,
ctx . qry . grep , ctx . qry . search ,
ctx - > qry . grep , ctx - > qry . search ,
ctx . qry . showmsg ) ;
ctx - > qry . showmsg ) ;
else if ( ! strcmp ( ctx . qry . page , " commit " ) )
else if ( ! strcmp ( ctx - > qry . page , " commit " ) )
cgit_commit_link ( name , title , class , ctx . qry . head ,
cgit_commit_link ( name , title , class , ctx - > qry . head ,
ctx . qry . has_sha1 ? ctx . qry . sha1 : NULL ,
ctx - > qry . has_sha1 ? ctx - > qry . sha1 : NULL ,
ctx . qry . path , 0 ) ;
ctx - > qry . path , 0 ) ;
else if ( ! strcmp ( ctx . qry . page , " patch " ) )
else if ( ! strcmp ( ctx - > qry . page , " patch " ) )
cgit_patch_link ( name , title , class , ctx . qry . head ,
cgit_patch_link ( name , title , class , ctx - > qry . head ,
ctx . qry . has_sha1 ? ctx . qry . sha1 : NULL ,
ctx - > qry . has_sha1 ? ctx - > qry . sha1 : NULL ,
ctx . qry . path ) ;
ctx - > qry . path ) ;
else if ( ! strcmp ( ctx . qry . page , " refs " ) )
else if ( ! strcmp ( ctx - > qry . page , " refs " ) )
cgit_refs_link ( name , title , class , ctx . qry . head ,
cgit_refs_link ( name , title , class , ctx - > qry . head ,
ctx . qry . has_sha1 ? ctx . qry . sha1 : NULL ,
ctx - > qry . has_sha1 ? ctx - > qry . sha1 : NULL ,
ctx . qry . path ) ;
ctx - > qry . path ) ;
else if ( ! strcmp ( ctx . qry . page , " snapshot " ) )
else if ( ! strcmp ( ctx - > qry . page , " snapshot " ) )
cgit_snapshot_link ( name , title , class , ctx . qry . head ,
cgit_snapshot_link ( name , title , class , ctx - > qry . head ,
ctx . qry . has_sha1 ? ctx . qry . sha1 : NULL ,
ctx - > qry . has_sha1 ? ctx - > qry . sha1 : NULL ,
ctx . qry . path ) ;
ctx - > qry . path ) ;
else if ( ! strcmp ( ctx . qry . page , " diff " ) )
else if ( ! strcmp ( ctx - > qry . page , " diff " ) )
cgit_diff_link ( name , title , class , ctx . qry . head ,
cgit_diff_link ( name , title , class , ctx - > qry . head ,
ctx . qry . sha1 , ctx . qry . sha2 ,
ctx - > qry . sha1 , ctx - > qry . sha2 ,
ctx . qry . path , 0 ) ;
ctx - > qry . path , 0 ) ;
else if ( ! strcmp ( ctx . qry . page , " stats " ) )
else if ( ! strcmp ( ctx - > qry . page , " stats " ) )
cgit_stats_link ( name , title , class , ctx . qry . head ,
cgit_stats_link ( name , title , class , ctx - > qry . head ,
ctx . qry . path ) ;
ctx - > qry . path ) ;
else {
else {
/* Don't known how to make link for this page */
/* Don't known how to make link for this page */
repolink ( title , class , ctx - > qry . page , ctx - > qry . head , ctx - > qry . path ) ;
repolink ( title , class , ctx . qry . page , ctx . qry . head , ctx . qry . path ) ;
html ( " ><!-- cgit_self_link() doesn't know how to make link for page ' " ) ;
html ( " ><!-- cgit_self_link() doesn't know how to make link for page ' " ) ;
html_txt ( ctx - > qry . page ) ;
html_txt ( ctx . qry . page ) ;
html ( " ' --> " ) ;
html ( " ' --> " ) ;
html_txt ( name ) ;
html_txt ( name ) ;
html ( " </a> " ) ;
html ( " </a> " ) ;
@ -632,39 +631,39 @@ void cgit_print_age(time_t t, time_t max_relative, const char *format)
secs * 1.0 / TM_YEAR ) ;
secs * 1.0 / TM_YEAR ) ;
}
}
void cgit_print_http_headers ( struct cgit_context * ctx )
void cgit_print_http_headers ( void )
{
{
if ( ctx - > env . no_http & & ! strcmp ( ctx - > env . no_http , " 1 " ) )
if ( ctx . env . no_http & & ! strcmp ( ctx . env . no_http , " 1 " ) )
return ;
return ;
if ( ctx - > page . status )
if ( ctx . page . status )
htmlf ( " Status: %d %s \n " , ctx - > page . status , ctx - > page . statusmsg ) ;
htmlf ( " Status: %d %s \n " , ctx . page . status , ctx . page . statusmsg ) ;
if ( ctx - > page . mimetype & & ctx - > page . charset )
if ( ctx . page . mimetype & & ctx . page . charset )
htmlf ( " Content-Type: %s; charset=%s \n " , ctx - > page . mimetype ,
htmlf ( " Content-Type: %s; charset=%s \n " , ctx . page . mimetype ,
ctx - > page . charset ) ;
ctx . page . charset ) ;
else if ( ctx - > page . mimetype )
else if ( ctx . page . mimetype )
htmlf ( " Content-Type: %s \n " , ctx - > page . mimetype ) ;
htmlf ( " Content-Type: %s \n " , ctx . page . mimetype ) ;
if ( ctx - > page . size )
if ( ctx . page . size )
htmlf ( " Content-Length: %zd \n " , ctx - > page . size ) ;
htmlf ( " Content-Length: %zd \n " , ctx . page . size ) ;
if ( ctx - > page . filename )
if ( ctx . page . filename )
htmlf ( " Content-Disposition: inline; filename= \" %s \" \n " ,
htmlf ( " Content-Disposition: inline; filename= \" %s \" \n " ,
ctx - > page . filename ) ;
ctx . page . filename ) ;
if ( ! ctx - > env . authenticated )
if ( ! ctx . env . authenticated )
html ( " Cache-Control: no-cache, no-store \n " ) ;
html ( " Cache-Control: no-cache, no-store \n " ) ;
htmlf ( " Last-Modified: %s \n " , http_date ( ctx - > page . modified ) ) ;
htmlf ( " Last-Modified: %s \n " , http_date ( ctx . page . modified ) ) ;
htmlf ( " Expires: %s \n " , http_date ( ctx - > page . expires ) ) ;
htmlf ( " Expires: %s \n " , http_date ( ctx . page . expires ) ) ;
if ( ctx - > page . etag )
if ( ctx . page . etag )
htmlf ( " ETag: \" %s \" \n " , ctx - > page . etag ) ;
htmlf ( " ETag: \" %s \" \n " , ctx . page . etag ) ;
html ( " \n " ) ;
html ( " \n " ) ;
if ( ctx - > env . request_method & & ! strcmp ( ctx - > env . request_method , " HEAD " ) )
if ( ctx . env . request_method & & ! strcmp ( ctx . env . request_method , " HEAD " ) )
exit ( 0 ) ;
exit ( 0 ) ;
}
}
void cgit_print_docstart ( struct cgit_context * ctx )
void cgit_print_docstart ( void )
{
{
if ( ctx - > cfg . embedded ) {
if ( ctx . cfg . embedded ) {
if ( ctx - > cfg . header )
if ( ctx . cfg . header )
html_include ( ctx - > cfg . header ) ;
html_include ( ctx . cfg . header ) ;
return ;
return ;
}
}
@ -673,37 +672,37 @@ void cgit_print_docstart(struct cgit_context *ctx)
html ( " <html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'> \n " ) ;
html ( " <html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'> \n " ) ;
html ( " <head> \n " ) ;
html ( " <head> \n " ) ;
html ( " <title> " ) ;
html ( " <title> " ) ;
html_txt ( ctx - > page . title ) ;
html_txt ( ctx . page . title ) ;
html ( " </title> \n " ) ;
html ( " </title> \n " ) ;
htmlf ( " <meta name='generator' content='cgit %s'/> \n " , cgit_version ) ;
htmlf ( " <meta name='generator' content='cgit %s'/> \n " , cgit_version ) ;
if ( ctx - > cfg . robots & & * ctx - > cfg . robots )
if ( ctx . cfg . robots & & * ctx . cfg . robots )
htmlf ( " <meta name='robots' content='%s'/> \n " , ctx - > cfg . robots ) ;
htmlf ( " <meta name='robots' content='%s'/> \n " , ctx . cfg . robots ) ;
html ( " <link rel='stylesheet' type='text/css' href=' " ) ;
html ( " <link rel='stylesheet' type='text/css' href=' " ) ;
html_attr ( ctx - > cfg . css ) ;
html_attr ( ctx . cfg . css ) ;
html ( " '/> \n " ) ;
html ( " '/> \n " ) ;
if ( ctx - > cfg . favicon ) {
if ( ctx . cfg . favicon ) {
html ( " <link rel='shortcut icon' href=' " ) ;
html ( " <link rel='shortcut icon' href=' " ) ;
html_attr ( ctx - > cfg . favicon ) ;
html_attr ( ctx . cfg . favicon ) ;
html ( " '/> \n " ) ;
html ( " '/> \n " ) ;
}
}
if ( host & & ctx - > repo & & ctx - > qry . head ) {
if ( host & & ctx . repo & & ctx . qry . head ) {
struct strbuf sb = STRBUF_INIT ;
struct strbuf sb = STRBUF_INIT ;
strbuf_addf ( & sb , " h=%s " , ctx - > qry . head ) ;
strbuf_addf ( & sb , " h=%s " , ctx . qry . head ) ;
html ( " <link rel='alternate' title='Atom feed' href=' " ) ;
html ( " <link rel='alternate' title='Atom feed' href=' " ) ;
html ( cgit_httpscheme ( ) ) ;
html ( cgit_httpscheme ( ) ) ;
html_attr ( cgit_hosturl ( ) ) ;
html_attr ( cgit_hosturl ( ) ) ;
html_attr ( cgit_fileurl ( ctx - > repo - > url , " atom " , ctx - > qry . vpath ,
html_attr ( cgit_fileurl ( ctx . repo - > url , " atom " , ctx . qry . vpath ,
sb . buf ) ) ;
sb . buf ) ) ;
html ( " ' type='application/atom+xml'/> \n " ) ;
html ( " ' type='application/atom+xml'/> \n " ) ;
strbuf_release ( & sb ) ;
strbuf_release ( & sb ) ;
}
}
if ( ctx - > cfg . head_include )
if ( ctx . cfg . head_include )
html_include ( ctx - > cfg . head_include ) ;
html_include ( ctx . cfg . head_include ) ;
html ( " </head> \n " ) ;
html ( " </head> \n " ) ;
html ( " <body> \n " ) ;
html ( " <body> \n " ) ;
if ( ctx - > cfg . header )
if ( ctx . cfg . header )
html_include ( ctx - > cfg . header ) ;
html_include ( ctx . cfg . header ) ;
}
}
void cgit_print_docend ( )
void cgit_print_docend ( )
@ -767,47 +766,47 @@ void cgit_add_hidden_formfields(int incl_head, int incl_search,
}
}
}
}
static const char * hc ( struct cgit_context * ctx , const char * page )
static const char * hc ( const char * page )
{
{
return strcmp ( ctx - > qry . page , page ) ? NULL : " active " ;
return strcmp ( ctx . qry . page , page ) ? NULL : " active " ;
}
}
static void cgit_print_path_crumbs ( struct cgit_context * ctx , char * path )
static void cgit_print_path_crumbs ( char * path )
{
{
char * old_path = ctx - > qry . path ;
char * old_path = ctx . qry . path ;
char * p = path , * q , * end = path + strlen ( path ) ;
char * p = path , * q , * end = path + strlen ( path ) ;
ctx - > qry . path = NULL ;
ctx . qry . path = NULL ;
cgit_self_link ( " root " , NULL , NULL , ctx );
cgit_self_link ( " root " , NULL , NULL );
ctx - > qry . path = p = path ;
ctx . qry . path = p = path ;
while ( p < end ) {
while ( p < end ) {
if ( ! ( q = strchr ( p , ' / ' ) ) )
if ( ! ( q = strchr ( p , ' / ' ) ) )
q = end ;
q = end ;
* q = ' \0 ' ;
* q = ' \0 ' ;
html_txt ( " / " ) ;
html_txt ( " / " ) ;
cgit_self_link ( p , NULL , NULL , ctx );
cgit_self_link ( p , NULL , NULL );
if ( q < end )
if ( q < end )
* q = ' / ' ;
* q = ' / ' ;
p = q + 1 ;
p = q + 1 ;
}
}
ctx - > qry . path = old_path ;
ctx . qry . path = old_path ;
}
}
static void print_header ( struct cgit_context * ctx )
static void print_header ( void )
{
{
char * logo = NULL , * logo_link = NULL ;
char * logo = NULL , * logo_link = NULL ;
html ( " <table id='header'> \n " ) ;
html ( " <table id='header'> \n " ) ;
html ( " <tr> \n " ) ;
html ( " <tr> \n " ) ;
if ( ctx - > repo & & ctx - > repo - > logo & & * ctx - > repo - > logo )
if ( ctx . repo & & ctx . repo - > logo & & * ctx . repo - > logo )
logo = ctx - > repo - > logo ;
logo = ctx . repo - > logo ;
else
else
logo = ctx - > cfg . logo ;
logo = ctx . cfg . logo ;
if ( ctx - > repo & & ctx - > repo - > logo_link & & * ctx - > repo - > logo_link )
if ( ctx . repo & & ctx . repo - > logo_link & & * ctx . repo - > logo_link )
logo_link = ctx - > repo - > logo_link ;
logo_link = ctx . repo - > logo_link ;
else
else
logo_link = ctx - > cfg . logo_link ;
logo_link = ctx . cfg . logo_link ;
if ( logo & & * logo ) {
if ( logo & & * logo ) {
html ( " <td class='logo' rowspan='2'><a href=' " ) ;
html ( " <td class='logo' rowspan='2'><a href=' " ) ;
if ( logo_link & & * logo_link )
if ( logo_link & & * logo_link )
@ -820,104 +819,104 @@ static void print_header(struct cgit_context *ctx)
}
}
html ( " <td class='main'> " ) ;
html ( " <td class='main'> " ) ;
if ( ctx - > repo ) {
if ( ctx . repo ) {
cgit_index_link ( " index " , NULL , NULL , NULL , NULL , 0 ) ;
cgit_index_link ( " index " , NULL , NULL , NULL , NULL , 0 ) ;
html ( " : " ) ;
html ( " : " ) ;
cgit_summary_link ( ctx - > repo - > name , ctx - > repo - > name , NULL , NULL ) ;
cgit_summary_link ( ctx . repo - > name , ctx . repo - > name , NULL , NULL ) ;
if ( ctx - > env . authenticated ) {
if ( ctx . env . authenticated ) {
html ( " </td><td class='form'> " ) ;
html ( " </td><td class='form'> " ) ;
html ( " <form method='get' action=''> \n " ) ;
html ( " <form method='get' action=''> \n " ) ;
cgit_add_hidden_formfields ( 0 , 1 , ctx - > qry . page ) ;
cgit_add_hidden_formfields ( 0 , 1 , ctx . qry . page ) ;
html ( " <select name='h' onchange='this.form.submit();'> \n " ) ;
html ( " <select name='h' onchange='this.form.submit();'> \n " ) ;
for_each_branch_ref ( print_branch_option , ctx - > qry . head ) ;
for_each_branch_ref ( print_branch_option , ctx . qry . head ) ;
html ( " </select> " ) ;
html ( " </select> " ) ;
html ( " <input type='submit' name='' value='switch'/> " ) ;
html ( " <input type='submit' name='' value='switch'/> " ) ;
html ( " </form> " ) ;
html ( " </form> " ) ;
}
}
} else
} else
html_txt ( ctx - > cfg . root_title ) ;
html_txt ( ctx . cfg . root_title ) ;
html ( " </td></tr> \n " ) ;
html ( " </td></tr> \n " ) ;
html ( " <tr><td class='sub'> " ) ;
html ( " <tr><td class='sub'> " ) ;
if ( ctx - > repo ) {
if ( ctx . repo ) {
html_txt ( ctx - > repo - > desc ) ;
html_txt ( ctx . repo - > desc ) ;
html ( " </td><td class='sub right'> " ) ;
html ( " </td><td class='sub right'> " ) ;
html_txt ( ctx - > repo - > owner ) ;
html_txt ( ctx . repo - > owner ) ;
} else {
} else {
if ( ctx - > cfg . root_desc )
if ( ctx . cfg . root_desc )
html_txt ( ctx - > cfg . root_desc ) ;
html_txt ( ctx . cfg . root_desc ) ;
else if ( ctx - > cfg . index_info )
else if ( ctx . cfg . index_info )
html_include ( ctx - > cfg . index_info ) ;
html_include ( ctx . cfg . index_info ) ;
}
}
html ( " </td></tr></table> \n " ) ;
html ( " </td></tr></table> \n " ) ;
}
}
void cgit_print_pageheader ( struct cgit_context * ctx )
void cgit_print_pageheader ( void )
{
{
html ( " <div id='cgit'> " ) ;
html ( " <div id='cgit'> " ) ;
if ( ! ctx - > env . authenticated | | ! ctx - > cfg . noheader )
if ( ! ctx . env . authenticated | | ! ctx . cfg . noheader )
print_header ( ctx ) ;
print_header ( ) ;
html ( " <table class='tabs'><tr><td> \n " ) ;
html ( " <table class='tabs'><tr><td> \n " ) ;
if ( ctx - > env . authenticated & & ctx - > repo ) {
if ( ctx . env . authenticated & & ctx . repo ) {
cgit_summary_link ( " summary " , NULL , hc ( ctx , " summary " ) ,
cgit_summary_link ( " summary " , NULL , hc ( " summary " ) ,
ctx - > qry . head ) ;
ctx . qry . head ) ;
cgit_refs_link ( " refs " , NULL , hc ( ctx , " refs " ) , ctx - > qry . head ,
cgit_refs_link ( " refs " , NULL , hc ( " refs " ) , ctx . qry . head ,
ctx - > qry . sha1 , NULL ) ;
ctx . qry . sha1 , NULL ) ;
cgit_log_link ( " log " , NULL , hc ( ctx , " log " ) , ctx - > qry . head ,
cgit_log_link ( " log " , NULL , hc ( " log " ) , ctx . qry . head ,
NULL , ctx - > qry . vpath , 0 , NULL , NULL ,
NULL , ctx . qry . vpath , 0 , NULL , NULL ,
ctx - > qry . showmsg ) ;
ctx . qry . showmsg ) ;
cgit_tree_link ( " tree " , NULL , hc ( ctx , " tree " ) , ctx - > qry . head ,
cgit_tree_link ( " tree " , NULL , hc ( " tree " ) , ctx . qry . head ,
ctx - > qry . sha1 , ctx - > qry . vpath ) ;
ctx . qry . sha1 , ctx . qry . vpath ) ;
cgit_commit_link ( " commit " , NULL , hc ( ctx , " commit " ) ,
cgit_commit_link ( " commit " , NULL , hc ( " commit " ) ,
ctx - > qry . head , ctx - > qry . sha1 , ctx - > qry . vpath , 0 ) ;
ctx . qry . head , ctx . qry . sha1 , ctx . qry . vpath , 0 ) ;
cgit_diff_link ( " diff " , NULL , hc ( ctx , " diff " ) , ctx - > qry . head ,
cgit_diff_link ( " diff " , NULL , hc ( " diff " ) , ctx . qry . head ,
ctx - > qry . sha1 , ctx - > qry . sha2 , ctx - > qry . vpath , 0 ) ;
ctx . qry . sha1 , ctx . qry . sha2 , ctx . qry . vpath , 0 ) ;
if ( ctx - > repo - > max_stats )
if ( ctx . repo - > max_stats )
cgit_stats_link ( " stats " , NULL , hc ( ctx , " stats " ) ,
cgit_stats_link ( " stats " , NULL , hc ( " stats " ) ,
ctx - > qry . head , ctx - > qry . vpath ) ;
ctx . qry . head , ctx . qry . vpath ) ;
if ( ctx - > repo - > readme . nr )
if ( ctx . repo - > readme . nr )
reporevlink ( " about " , " about " , NULL ,
reporevlink ( " about " , " about " , NULL ,
hc ( ctx , " about " ) , ctx - > qry . head , NULL ,
hc ( " about " ) , ctx . qry . head , NULL ,
NULL ) ;
NULL ) ;
html ( " </td><td class='form'> " ) ;
html ( " </td><td class='form'> " ) ;
html ( " <form class='right' method='get' action=' " ) ;
html ( " <form class='right' method='get' action=' " ) ;
if ( ctx - > cfg . virtual_root )
if ( ctx . cfg . virtual_root )
html_url_path ( cgit_fileurl ( ctx - > qry . repo , " log " ,
html_url_path ( cgit_fileurl ( ctx . qry . repo , " log " ,
ctx - > qry . vpath , NULL ) ) ;
ctx . qry . vpath , NULL ) ) ;
html ( " '> \n " ) ;
html ( " '> \n " ) ;
cgit_add_hidden_formfields ( 1 , 0 , " log " ) ;
cgit_add_hidden_formfields ( 1 , 0 , " log " ) ;
html ( " <select name='qt'> \n " ) ;
html ( " <select name='qt'> \n " ) ;
html_option ( " grep " , " log msg " , ctx - > qry . grep ) ;
html_option ( " grep " , " log msg " , ctx . qry . grep ) ;
html_option ( " author " , " author " , ctx - > qry . grep ) ;
html_option ( " author " , " author " , ctx . qry . grep ) ;
html_option ( " committer " , " committer " , ctx - > qry . grep ) ;
html_option ( " committer " , " committer " , ctx . qry . grep ) ;
html_option ( " range " , " range " , ctx - > qry . grep ) ;
html_option ( " range " , " range " , ctx . qry . grep ) ;
html ( " </select> \n " ) ;
html ( " </select> \n " ) ;
html ( " <input class='txt' type='text' size='10' name='q' value=' " ) ;
html ( " <input class='txt' type='text' size='10' name='q' value=' " ) ;
html_attr ( ctx - > qry . search ) ;
html_attr ( ctx . qry . search ) ;
html ( " '/> \n " ) ;
html ( " '/> \n " ) ;
html ( " <input type='submit' value='search'/> \n " ) ;
html ( " <input type='submit' value='search'/> \n " ) ;
html ( " </form> \n " ) ;
html ( " </form> \n " ) ;
} else if ( ctx - > env . authenticated ) {
} else if ( ctx . env . authenticated ) {
site_link ( NULL , " index " , NULL , hc ( ctx , " repolist " ) , NULL , NULL , 0 ) ;
site_link ( NULL , " index " , NULL , hc ( " repolist " ) , NULL , NULL , 0 ) ;
if ( ctx - > cfg . root_readme )
if ( ctx . cfg . root_readme )
site_link ( " about " , " about " , NULL , hc ( ctx , " about " ) ,
site_link ( " about " , " about " , NULL , hc ( " about " ) ,
NULL , NULL , 0 ) ;
NULL , NULL , 0 ) ;
html ( " </td><td class='form'> " ) ;
html ( " </td><td class='form'> " ) ;
html ( " <form method='get' action=' " ) ;
html ( " <form method='get' action=' " ) ;
html_attr ( cgit_rooturl ( ) ) ;
html_attr ( cgit_rooturl ( ) ) ;
html ( " '> \n " ) ;
html ( " '> \n " ) ;
html ( " <input type='text' name='q' size='10' value=' " ) ;
html ( " <input type='text' name='q' size='10' value=' " ) ;
html_attr ( ctx - > qry . search ) ;
html_attr ( ctx . qry . search ) ;
html ( " '/> \n " ) ;
html ( " '/> \n " ) ;
html ( " <input type='submit' value='search'/> \n " ) ;
html ( " <input type='submit' value='search'/> \n " ) ;
html ( " </form> " ) ;
html ( " </form> " ) ;
}
}
html ( " </td></tr></table> \n " ) ;
html ( " </td></tr></table> \n " ) ;
if ( ctx - > env . authenticated & & ctx - > qry . vpath ) {
if ( ctx . env . authenticated & & ctx . qry . vpath ) {
html ( " <div class='path'> " ) ;
html ( " <div class='path'> " ) ;
html ( " path: " ) ;
html ( " path: " ) ;
cgit_print_path_crumbs ( ctx , ctx - > qry . vpath ) ;
cgit_print_path_crumbs ( ctx . qry . vpath ) ;
html ( " </div> " ) ;
html ( " </div> " ) ;
}
}
html ( " <div class='content'> " ) ;
html ( " <div class='content'> " ) ;