- while((len = get_one_line(h)) > 0)
- h += len+2;
-
- h++;
- len = get_one_line(h);
-
- subject = h;
-
- html("<tr><td>");
- strftime(buf, sizeof(buf), "%Y-%m-%d %H:%M:%S", time);
- html_txt(buf);
- html("</td><td>");
- char *qry = fmt("id=%s", sha1_to_hex(commit->object.sha1));
- char *url = cgit_pageurl(cgit_query_repo, "view", qry);
- html_link_open(url, NULL, NULL);
- html_txt(subject);
- html_link_close();
- html("</td><td>");
- html_txt(author);
- html("</td></tr>\n");
-}
-
-static void cgit_print_log(const char *tip, int ofs, int cnt)
-{
- struct rev_info rev;
- struct commit *commit;
- const char *argv[2] = {NULL, tip};
- int n = 0;
-
- init_revisions(&rev, NULL);
- rev.abbrev = DEFAULT_ABBREV;
- rev.commit_format = CMIT_FMT_DEFAULT;
- rev.verbose_header = 1;
- rev.show_root_diff = 0;
- setup_revisions(2, argv, &rev, NULL);
- prepare_revision_walk(&rev);
-
- html("<h2>Log</h2>");
- html("<table class='list'>");
- html("<tr><th>Date</th><th>Message</th><th>Author</th></tr>\n");
- while ((commit = get_revision(&rev)) != NULL && n++ < 100) {
- cgit_print_commit_shortlog(commit);
- free(commit->buffer);
- commit->buffer = NULL;
- free_commit_list(commit->parents);
- commit->parents = NULL;
+ if (!cgit_query_page) {
+ item->name = xstrdup(fmt("%s/%s/index.html", cgit_cache_root,
+ cgit_repo->url));
+ item->ttl = cgit_cache_repo_ttl;
+ } else {
+ item->name = xstrdup(fmt("%s/%s/%s/%s.html", cgit_cache_root,
+ cgit_repo->url, cgit_query_page,
+ cache_safe_filename(cgit_querystring)));
+ if (cgit_query_has_symref)
+ item->ttl = cgit_cache_dynamic_ttl;
+ else if (cgit_query_has_sha1)
+ item->ttl = cgit_cache_static_ttl;
+ else
+ item->ttl = cgit_cache_repo_ttl;