| -rw-r--r-- | cgit.c | 8 | ||||
| -rw-r--r-- | cgit.h | 1 | ||||
| -rw-r--r-- | cgitrc.5.txt | 6 | ||||
| -rw-r--r-- | shared.c | 1 | ||||
| -rw-r--r-- | ui-shared.c | 56 | ||||
| -rw-r--r-- | ui-shared.h | 3 | ||||
| -rw-r--r-- | ui-tree.c | 13 |
7 files changed, 10 insertions, 78 deletions
@@ -60,8 +60,6 @@ static void process_cached_repolist(const char *path); void repo_config(struct cgit_repo *repo, const char *name, const char *value) { - struct string_list_item *item; - if (!strcmp(name, "name")) repo->name = xstrdup(value); else if (!strcmp(name, "clone-url")) @@ -88,10 +86,7 @@ void repo_config(struct cgit_repo *repo, const char *name, const char *value) repo->max_stats = cgit_find_stats_period(value, NULL); else if (!strcmp(name, "module-link")) repo->module_link= xstrdup(value); - else if (!prefixcmp(name, "module-link.")) { - item = string_list_append(&repo->submodules, name + 12); - item->util = xstrdup(value); - } else if (!strcmp(name, "section")) + else if (!strcmp(name, "section")) repo->section = xstrdup(value); else if (!strcmp(name, "readme") && value != NULL) repo->readme = xstrdup(value); @@ -470,7 +465,6 @@ static int prepare_repo_cmd(struct cgit_context *ctx) cgit_print_docend(); return 1; } - sort_string_list(&ctx->repo->submodules); cgit_prepare_repo_env(ctx->repo); return 0; } @@ -88,7 +88,6 @@ struct cgit_repo { struct cgit_filter *about_filter; struct cgit_filter *commit_filter; struct cgit_filter *source_filter; - struct string_list submodules; }; typedef void (*repo_config_fn)(struct cgit_repo *repo, const char *name, diff --git a/cgitrc.5.txt b/cgitrc.5.txt index 1162bd5..4721c1e 100644 --- a/cgitrc.5.txt +++ b/cgitrc.5.txt @@ -417,12 +417,6 @@ repo.module-link:: formatstring are the path and SHA1 of the submodule commit. Default value: <module-link> -repo.module-link.<path>:: - Text which will be used as the formatstring for a hyperlink when a - submodule with the specified subdirectory path is printed in a - directory listing. The only argument for the formatstring is the SHA1 - of the submodule commit. Default value: none. - repo.max-stats:: Override the default maximum statistics period. Valid values are equal to the values specified for the global "max-stats" setting. Default @@ -71,7 +71,6 @@ struct cgit_repo *cgit_add_repo(const char *url) ret->commit_filter = ctx.cfg.commit_filter; ret->source_filter = ctx.cfg.source_filter; ret->clone_url = ctx.cfg.clone_url; - ret->submodules.strdup_strings = 1; return ret; } diff --git a/ui-shared.c b/ui-shared.c index b736fca..5aa9119 100644 --- a/ui-shared.c +++ b/ui-shared.c @@ -503,62 +503,6 @@ void cgit_object_link(struct object *obj) reporevlink(page, name, NULL, NULL, ctx.qry.head, fullrev, NULL); } -struct string_list_item *lookup_path(struct string_list *list, - const char *path) -{ - struct string_list_item *item; - - while (path && path[0]) { - if ((item = string_list_lookup(list, path))) - return item; - if (!(path = strchr(path, '/'))) - break; - path++; - } - return NULL; -} - -void cgit_submodule_link(const char *class, char *path, const char *rev) -{ - struct string_list *list; - struct string_list_item *item; - char tail, *dir; - size_t len; - - tail = 0; - list = &ctx.repo->submodules; - item = lookup_path(list, path); - if (!item) { - len = strlen(path); - tail = path[len - 1]; - if (tail == '/') { - path[len - 1] = 0; - item = lookup_path(list, path); - } - } - html("<a "); - if (class) - htmlf("class='%s' ", class); - html("href='"); - if (item) { - html_attr(fmt(item->util, rev)); - } else if (ctx.repo->module_link) { - dir = strrchr(path, '/'); - if (dir) - dir++; - else - dir = path; - html_attr(fmt(ctx.repo->module_link, dir, rev)); - } else { - html("#"); - } - html("'>"); - html_txt(path); - html("</a>"); - if (item && tail) - path[len - 1] = tail; -} - void cgit_print_date(time_t secs, const char *format, int local_time) { char buf[64]; diff --git a/ui-shared.h b/ui-shared.h index e80b975..3cc1258 100644 --- a/ui-shared.h +++ b/ui-shared.h @@ -51,9 +51,6 @@ extern void cgit_self_link(char *name, const char *title, const char *class, struct cgit_context *ctx); extern void cgit_object_link(struct object *obj); -extern void cgit_submodule_link(const char *class, char *path, - const char *rev); - extern void cgit_print_error(const char *msg); extern void cgit_print_date(time_t secs, const char *format, int local_time); extern void cgit_print_age(time_t t, time_t max_relative, const char *format); @@ -150,7 +150,13 @@ static int ls_item(const unsigned char *sha1, const char *base, int baselen, cgit_print_filemode(mode); html("</td><td>"); if (S_ISGITLINK(mode)) { - cgit_submodule_link("ls-mod", fullpath, sha1_to_hex(sha1)); + htmlf("<a class='ls-mod' href='"); + html_attr(fmt(ctx.repo->module_link, + name, + sha1_to_hex(sha1))); + html("'>"); + html_txt(name); + html("</a>"); } else if (S_ISDIR(mode)) { cgit_tree_link(name, NULL, "ls-dir", ctx.qry.head, curr_rev, fullpath); @@ -171,9 +177,8 @@ static int ls_item(const unsigned char *sha1, const char *base, int baselen, if (ctx.repo->max_stats) cgit_stats_link("stats", NULL, "button", ctx.qry.head, fullpath); - if (!S_ISGITLINK(mode)) - cgit_plain_link("plain", NULL, "button", ctx.qry.head, curr_rev, - fullpath); + cgit_plain_link("plain", NULL, "button", ctx.qry.head, curr_rev, + fullpath); html("</td></tr>\n"); free(name); return 0; |