X-Git-Url: https://gitweb.ps.run/ps-cgit/blobdiff_plain/30304d8156a72ffc95e45e1aa9407319b81bd253..a4014d0dbfcab1de7293179966c9b7fcfcc7b925:/ui-repolist.c diff --git a/ui-repolist.c b/ui-repolist.c index edefc4c..4912fa5 100644 --- a/ui-repolist.c +++ b/ui-repolist.c @@ -10,17 +10,18 @@ #include "ui-repolist.h" #include "html.h" #include "ui-shared.h" -#include static time_t read_agefile(char *path) { time_t result; size_t size; - char *buf; + char *buf = NULL; struct strbuf date_buf = STRBUF_INIT; - if (readfile(path, &buf, &size)) + if (readfile(path, &buf, &size)) { + free(buf); return -1; + } if (parse_date(buf, &date_buf) == 0) result = strtoul(date_buf.buf, NULL, 10); @@ -105,16 +106,27 @@ static int is_in_url(struct cgit_repo *repo) return 0; } +static int is_visible(struct cgit_repo *repo) +{ + if (repo->hide || repo->ignore) + return 0; + if (!(is_match(repo) && is_in_url(repo))) + return 0; + return 1; +} + static void print_sort_header(const char *title, const char *sort) { + char *currenturl = cgit_currenturl(); html("%s", title); + free(currenturl); } static void print_header(void) @@ -275,9 +287,7 @@ void cgit_print_repolist(void) html(""); for (i = 0; i < cgit_repolist.count; i++) { ctx.repo = &cgit_repolist.repos[i]; - if (ctx.repo->hide || ctx.repo->ignore) - continue; - if (!(is_match(ctx.repo) && is_in_url(ctx.repo))) + if (!is_visible(ctx.repo)) continue; hits++; if (hits <= ctx.qry.ofs) @@ -346,9 +356,12 @@ void cgit_print_repolist(void) void cgit_print_site_readme(void) { + cgit_print_layout_start(); if (!ctx.cfg.root_readme) - return; + goto done; cgit_open_filter(ctx.cfg.about_filter, ctx.cfg.root_readme); html_include(ctx.cfg.root_readme); cgit_close_filter(ctx.cfg.about_filter); +done: + cgit_print_layout_end(); }