| -rw-r--r-- | cgitrc.5.txt | 9 | ||||
| -rw-r--r-- | filter.c | 33 |
2 files changed, 2 insertions, 40 deletions
diff --git a/cgitrc.5.txt b/cgitrc.5.txt index 60159f6..52caed0 100644 --- a/cgitrc.5.txt +++ b/cgitrc.5.txt @@ -557,15 +557,6 @@ config files, e.g. "repo.desc" becomes "desc". FILTER API ---------- -By default, filters are separate processes that are executed each time they -are needed. Alternative technologies may be used by prefixing the filter -specification with the relevant string; available values are: - -'exec:':: - The default "one process per filter" mode. - -Parameters are provided to filters as follows. - about filter:: This filter is given a single parameter: the filename of the source file to filter. The filter can use the filename to determine (for @@ -64,7 +64,7 @@ done: static void fprintf_exec_filter(struct cgit_filter *base, FILE *f, const char *prefix) { struct cgit_exec_filter *filter = (struct cgit_exec_filter *) base; - fprintf(f, "%sexec:%s\n", prefix, filter->cmd); + fprintf(f, "%s%s\n", prefix, filter->cmd); } int cgit_open_filter(struct cgit_filter *filter, ...) @@ -125,39 +125,10 @@ static struct cgit_filter *new_exec_filter(const char *cmd, filter_type filterty return &f->base; } -static const struct { - const char *prefix; - struct cgit_filter *(*ctor)(const char *cmd, filter_type filtertype); -} filter_specs[] = { - { "exec", new_exec_filter }, -}; - struct cgit_filter *cgit_new_filter(const char *cmd, filter_type filtertype) { - char *colon; - int i; - size_t len; if (!cmd || !cmd[0]) return NULL; - colon = strchr(cmd, ':'); - len = colon - cmd; - /* - * In case we're running on Windows, don't allow a single letter before - * the colon. - */ - if (len == 1) - colon = NULL; - - /* If no prefix is given, exec filter is the default. */ - if (!colon) - return new_exec_filter(cmd, filtertype); - - for (i = 0; i < ARRAY_SIZE(filter_specs); i++) { - if (len == strlen(filter_specs[i].prefix) && - !strncmp(filter_specs[i].prefix, cmd, len)) - return filter_specs[i].ctor(colon + 1, filtertype); - } - - die("Invalid filter type: %.*s", (int) len, cmd); + return new_exec_filter(cmd, filtertype); } |