@ -19,7 +19,7 @@ struct walk_tree_context {
} ;
} ;
static int walk_tree ( const struct object_id * oid , struct strbuf * base ,
static int walk_tree ( const struct object_id * oid , struct strbuf * base ,
const char * pathname , unsigned mode , int stage , void * cbdata )
const char * pathname , unsigned mode , void * cbdata )
{
{
struct walk_tree_context * walk_tree_ctx = cbdata ;
struct walk_tree_context * walk_tree_ctx = cbdata ;
@ -56,9 +56,9 @@ int cgit_ref_path_exists(const char *path, const char *ref, int file_only)
goto done ;
goto done ;
if ( oid_object_info ( the_repository , & oid , & size ) ! = OBJ_COMMIT )
if ( oid_object_info ( the_repository , & oid , & size ) ! = OBJ_COMMIT )
goto done ;
goto done ;
read_tree _recursive ( the_repository ,
read_tree ( the_repository ,
repo_get_commit_tree ( the_repository , lookup_commit_reference ( the_repository , & oid ) ) ,
repo_get_commit_tree ( the_repository , lookup_commit_reference ( the_repository , & oid ) ) ,
" " , 0 , 0 , & paths , walk_tree , & walk_tree_ctx ) ;
& paths , walk_tree , & walk_tree_ctx ) ;
done :
done :
free ( path_items . match ) ;
free ( path_items . match ) ;
@ -92,10 +92,8 @@ int cgit_print_file(char *path, const char *head, int file_only)
type = oid_object_info ( the_repository , & oid , & size ) ;
type = oid_object_info ( the_repository , & oid , & size ) ;
if ( type = = OBJ_COMMIT ) {
if ( type = = OBJ_COMMIT ) {
commit = lookup_commit_reference ( the_repository , & oid ) ;
commit = lookup_commit_reference ( the_repository , & oid ) ;
read_tree_recursive ( the_repository ,
read_tree ( the_repository , repo_get_commit_tree ( the_repository , commit ) ,
repo_get_commit_tree ( the_repository , commit ) ,
& paths , walk_tree , & walk_tree_ctx ) ;
" " , 0 , 0 , & paths , walk_tree ,
& walk_tree_ctx ) ;
if ( ! walk_tree_ctx . found_path )
if ( ! walk_tree_ctx . found_path )
return - 1 ;
return - 1 ;
type = oid_object_info ( the_repository , & oid , & size ) ;
type = oid_object_info ( the_repository , & oid , & size ) ;
@ -151,10 +149,8 @@ void cgit_print_blob(const char *hex, char *path, const char *head, int file_onl
if ( ( ! hex ) & & type = = OBJ_COMMIT & & path ) {
if ( ( ! hex ) & & type = = OBJ_COMMIT & & path ) {
commit = lookup_commit_reference ( the_repository , & oid ) ;
commit = lookup_commit_reference ( the_repository , & oid ) ;
read_tree_recursive ( the_repository ,
read_tree ( the_repository , repo_get_commit_tree ( the_repository , commit ) ,
repo_get_commit_tree ( the_repository , commit ) ,
& paths , walk_tree , & walk_tree_ctx ) ;
" " , 0 , 0 , & paths , walk_tree ,
& walk_tree_ctx ) ;
type = oid_object_info ( the_repository , & oid , & size ) ;
type = oid_object_info ( the_repository , & oid , & size ) ;
}
}