- p = fmt("%s/README.html", path);
- if (!stat(p, &st))
- repo->readme = "README.html";
+ if (!repo->readme) {
+ p = fmt("%s/README.html", path);
+ if (!stat(p, &st))
+ repo->readme = "README.html";
+ }
+ if (ctx.cfg.section_from_path) {
+ n = ctx.cfg.section_from_path;
+ if (n > 0) {
+ slash = rel;
+ while (slash && n && (slash = strchr(slash, '/')))
+ n--;
+ } else {
+ slash = rel + strlen(rel);
+ while (slash && n && (slash = xstrrchr(rel, slash, '/')))
+ n++;
+ }
+ if (slash && !n) {
+ *slash = '\0';
+ repo->section = xstrdup(rel);
+ *slash = '/';
+ if (!prefixcmp(repo->name, repo->section)) {
+ repo->name += strlen(repo->section);
+ if (*repo->name == '/')
+ repo->name++;
+ }
+ }
+ }