X-Git-Url: https://gitweb.ps.run/ps-cgit/blobdiff_plain/44923f8953c66dc9b852316b655ab3b5aec9478e..f516218d0d0a6ddbd04e8ade722cc67eee4cf001:/cgit.c diff --git a/cgit.c b/cgit.c index d1abaa0..37cdb83 100644 --- a/cgit.c +++ b/cgit.c @@ -26,10 +26,14 @@ static void cgit_print_repo_page(struct cacheitem *item) char *title = fmt("%s - %s", cgit_repo_name, cgit_repo_desc); cgit_print_docstart(title, item); cgit_print_pageheader(title); - if (!cgit_query_page) + if (!cgit_query_page) { cgit_print_summary(); - else if (!strcmp(cgit_query_page, "log")) { - cgit_print_log(cgit_query_head, 0, 100); + } else if (!strcmp(cgit_query_page, "log")) { + cgit_print_log(cgit_query_head, cgit_query_ofs, 100); + } else if (!strcmp(cgit_query_page, "tree")) { + cgit_print_tree(cgit_query_sha1); + } else if (!strcmp(cgit_query_page, "commit")) { + cgit_print_commit(cgit_query_sha1); } else if (!strcmp(cgit_query_page, "view")) { cgit_print_view(cgit_query_sha1); } @@ -61,13 +65,19 @@ static void cgit_check_cache(struct cacheitem *item) sleep(1); goto top; } - if (!cache_exist(item)) + if (!cache_exist(item)) { cgit_fill_cache(item); - cache_unlock(item); + cache_unlock(item); + } else { + cache_cancel_lock(item); + } } else if (cache_expired(item) && cache_lock(item)) { - if (cache_expired(item)) + if (cache_expired(item)) { cgit_fill_cache(item); - cache_unlock(item); + cache_unlock(item); + } else { + cache_cancel_lock(item); + } } }