@ -10,41 +10,35 @@
static int header ;
static int header ;
static int cgit_print_branch_cb ( const char * refname , const unsigned char * sha1 ,
static void cgit_print_branch ( struct refinfo * ref )
int flags , void * cb_data )
{
{
struct commit * commit ;
struct commit * commit ;
struct commitinfo * info ;
struct commitinfo * info ;
char buf [ 256 ] ;
char * name = ( char * ) ref - > refname ;
char * ref ;
ref = xstrdup ( refname ) ;
commit = lookup_commit ( ref - > object - > sha1 ) ;
strncpy ( buf , refname , sizeof ( buf ) ) ;
commit = lookup_commit ( sha1 ) ;
// object is not really parsed at this point, because of some fallout
// object is not really parsed at this point, because of some fallout
// from previous calls to git functions in cgit_print_log()
// from previous calls to git functions in cgit_print_log()
commit - > object . parsed = 0 ;
commit - > object . parsed = 0 ;
if ( commit & & ! parse_commit ( commit ) ) {
if ( commit & & ! parse_commit ( commit ) ) {
info = cgit_parse_commit ( commit ) ;
info = cgit_parse_commit ( commit ) ;
html ( " <tr><td> " ) ;
html ( " <tr><td> " ) ;
cgit_log_link ( ref , NULL , NULL , ref , NULL , NULL , 0 ) ;
cgit_log_link ( name , NULL , NULL , name , NULL , NULL , 0 ) ;
html ( " </td><td> " ) ;
html ( " </td><td> " ) ;
cgit_print_age ( commit - > date , - 1 , NULL ) ;
cgit_print_age ( commit - > date , - 1 , NULL ) ;
html ( " </td><td> " ) ;
html ( " </td><td> " ) ;
html_txt ( info - > author ) ;
html_txt ( info - > author ) ;
html ( " </td><td> " ) ;
html ( " </td><td> " ) ;
cgit_commit_link ( info - > subject , NULL , NULL , ref , NULL ) ;
cgit_commit_link ( info - > subject , NULL , NULL , name , NULL ) ;
html ( " </td></tr> \n " ) ;
html ( " </td></tr> \n " ) ;
cgit_free_commitinfo ( info ) ;
cgit_free_commitinfo ( info ) ;
} else {
} else {
html ( " <tr><td> " ) ;
html ( " <tr><td> " ) ;
html_txt ( buf ) ;
html_txt ( name ) ;
html ( " </td><td colspan='3'> " ) ;
html ( " </td><td colspan='3'> " ) ;
htmlf ( " *** bad ref %s *** " , sha1_to_hex ( sha1 ) ) ;
htmlf ( " *** bad ref %s *** " , sha1_to_hex ( ref - > object - > sha1 ) ) ;
html ( " </td></tr> \n " ) ;
html ( " </td></tr> \n " ) ;
}
}
free ( ref ) ;
return 0 ;
}
}
static void print_tag_header ( )
static void print_tag_header ( )
@ -144,11 +138,19 @@ static int cgit_print_archive_cb(const char *refname, const unsigned char *sha1,
static void cgit_print_branches ( )
static void cgit_print_branches ( )
{
{
struct reflist list ;
int i ;
html ( " <tr class='nohover'><th class='left'>Branch</th> "
html ( " <tr class='nohover'><th class='left'>Branch</th> "
" <th class='left'>Idle</th> "
" <th class='left'>Idle</th> "
" <th class='left'>Author</th> "
" <th class='left'>Author</th> "
" <th class='left'>Head commit</th></tr> \n " ) ;
" <th class='left'>Head commit</th></tr> \n " ) ;
for_each_branch_ref ( cgit_print_branch_cb , NULL ) ;
list . refs = NULL ;
list . alloc = list . count = 0 ;
for_each_branch_ref ( cgit_refs_cb , & list ) ;
for ( i = 0 ; i < list . count ; i + + )
cgit_print_branch ( list . refs [ i ] ) ;
}
}
static void cgit_print_tags ( )
static void cgit_print_tags ( )