| -rw-r--r-- | cgit.c | 9 | ||||
| -rw-r--r-- | cgit.h | 1 | ||||
| -rw-r--r-- | cgitrc.5.txt | 8 | ||||
| -rw-r--r-- | shared.c | 1 | ||||
| -rw-r--r-- | ui-plain.c | 9 | ||||
| -rw-r--r-- | ui-shared.c | 56 | ||||
| -rw-r--r-- | ui-shared.h | 3 | ||||
| -rw-r--r-- | ui-tree.c | 13 |
8 files changed, 15 insertions, 85 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); @@ -344,6 +339,7 @@ static void prepare_context(struct cgit_context *ctx) ctx->cfg.max_repodesc_len = 80; ctx->cfg.max_blob_size = 0; ctx->cfg.max_stats = 0; + ctx->cfg.module_link = "./?repo=%s&page=commit&id=%s"; ctx->cfg.project_list = NULL; ctx->cfg.renamelimit = -1; ctx->cfg.remove_suffix = 0; @@ -474,7 +470,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 b4ad2ac..a22423b 100644 --- a/cgitrc.5.txt +++ b/cgitrc.5.txt @@ -230,7 +230,7 @@ module-link:: Text which will be used as the formatstring for a hyperlink when a submodule is printed in a directory listing. The arguments for the formatstring are the path and SHA1 of the submodule commit. Default - value: none. + value: "./?repo=%s&page=commit&id=%s" nocache:: If set to the value "1" caching will be disabled. This settings is @@ -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 @@ -70,7 +70,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; } @@ -97,14 +97,11 @@ static void print_dir_entry(const unsigned char *sha1, const char *base, char *fullpath; fullpath = buildpath(base, baselen, path); - if (!S_ISDIR(mode) && !S_ISGITLINK(mode)) + if (!S_ISDIR(mode)) fullpath[strlen(fullpath) - 1] = 0; html(" <li>"); - if (S_ISGITLINK(mode)) { - cgit_submodule_link(NULL, fullpath, sha1_to_hex(sha1)); - } else - cgit_plain_link(path, NULL, NULL, ctx.qry.head, ctx.qry.sha1, - fullpath); + cgit_plain_link(path, NULL, NULL, ctx.qry.head, ctx.qry.sha1, + fullpath); html("</li>\n"); match = 2; } diff --git a/ui-shared.c b/ui-shared.c index 43166af..d7d75bf 100644 --- a/ui-shared.c +++ b/ui-shared.c @@ -509,62 +509,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 87a7dac..865bd45 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; |