X-Git-Url: https://gitweb.ps.run/ps-cgit/blobdiff_plain/9a725f4f0991710336584bb284a83dcf5fa5bf1e..ed3497b0de6634350cd17b320538fba918d4084c:/scan-tree.c diff --git a/scan-tree.c b/scan-tree.c index a1ec8fb..49de658 100644 --- a/scan-tree.c +++ b/scan-tree.c @@ -1,7 +1,6 @@ /* scan-tree.c - * - * Copyright (C) 2008-2009 Lars Hjemli - * Copyright (C) 2010, 2012 Jason A. Donenfeld + * + * Copyright (C) 2006-2014 cgit Development Team * * Licensed under GNU General Public License v2 * (see COPYING for full license text) @@ -106,7 +105,7 @@ static void add_repo(const char *base, struct strbuf *path, repo_config_fn fn) return; strbuf_setlen(path, pathlen); - if (strncmp(base, path->buf, strlen(base))) + if (prefixcmp(path->buf, base)) strbuf_addbuf(&rel, path); else strbuf_addstr(&rel, path->buf + strlen(base) + 1); @@ -147,21 +146,15 @@ static void add_repo(const char *base, struct strbuf *path, repo_config_fn fn) strbuf_setlen(path, pathlen); } - if (!repo->readme) { - strbuf_addstr(path, "README.html"); - if (!stat(path->buf, &st)) - repo->readme = "README.html"; - strbuf_setlen(path, pathlen); - } if (ctx.cfg.section_from_path) { - n = ctx.cfg.section_from_path; + n = ctx.cfg.section_from_path; if (n > 0) { - slash = rel.buf; - while (slash && n && (slash = strchr(slash, '/'))) + slash = rel.buf - 1; + while (slash && n && (slash = strchr(slash + 1, '/'))) n--; } else { slash = rel.buf + rel.len; - while (slash && n && (slash = xstrrchr(rel.buf, slash, '/'))) + while (slash && n && (slash = xstrrchr(rel.buf, slash - 1, '/'))) n++; } if (slash && !n) { @@ -236,8 +229,6 @@ end: closedir(dir); } -#define lastc(s) s[strlen(s) - 1] - void scan_projects(const char *path, const char *projectsfile, repo_config_fn fn) { struct strbuf line = STRBUF_INIT;