]> gitweb.ps.run Git - ps-cgit/blobdiff - ui-repolist.c
Simplify commit and tag parsing
[ps-cgit] / ui-repolist.c
index 477a9495f09d9b2cda9c26e292bb8f5398ddfbec..91911e071b2f35fa51bd01e6923bc27c389dd6bd 100644 (file)
@@ -17,16 +17,17 @@ static time_t read_agefile(char *path)
        time_t result;
        size_t size;
        char *buf;
-       static char buf2[64];
+       struct strbuf date_buf = STRBUF_INIT;
 
        if (readfile(path, &buf, &size))
                return -1;
 
-       if (parse_date(buf, buf2, sizeof(buf2)) > 0)
-               result = strtoul(buf2, NULL, 10);
+       if (parse_date(buf, &date_buf) == 0)
+               result = strtoul(date_buf.buf, NULL, 10);
        else
                result = 0;
        free(buf);
+       strbuf_release(&date_buf);
        return result;
 }
 
@@ -99,7 +100,7 @@ static int is_in_url(struct cgit_repo *repo)
 {
        if (!ctx.qry.url)
                return 1;
-       if (repo->url && !prefixcmp(repo->url, ctx.qry.url))
+       if (repo->url && starts_with(repo->url, ctx.qry.url))
                return 1;
        return 0;
 }
@@ -274,6 +275,8 @@ void cgit_print_repolist()
        html("<table summary='repository list' class='list nowrap'>");
        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)))
                        continue;
                hits++;
@@ -306,13 +309,19 @@ void cgit_print_repolist()
                html_link_close();
                html("</td><td>");
                if (ctx.cfg.enable_index_owner) {
-                       html("<a href='");
-                       html_attr(cgit_rooturl());
-                       html("?q=");
-                       html_url_arg(ctx.repo->owner);
-                       html("'>");
-                       html_txt(ctx.repo->owner);
-                       html("</a>");
+                       if (ctx.repo->owner_filter) {
+                               cgit_open_filter(ctx.repo->owner_filter);
+                               html_txt(ctx.repo->owner);
+                               cgit_close_filter(ctx.repo->owner_filter);
+                       } else {
+                               html("<a href='");
+                               html_attr(cgit_rooturl());
+                               html("?=");
+                               html_url_arg(ctx.repo->owner);
+                               html("'>");
+                               html_txt(ctx.repo->owner);
+                               html("</a>");
+                       }
                        html("</td><td>");
                }
                print_modtime(ctx.repo);