X-Git-Url: https://gitweb.ps.run/ps-cgit/blobdiff_plain/3eae406934b98ce78eff3a92cb410475d71095a3..f43b228d0bca5791be98ff3fbb2f8743219635b6:/cgit.h diff --git a/cgit.h b/cgit.h index a72c503..519d2af 100644 --- a/cgit.h +++ b/cgit.h @@ -57,6 +57,15 @@ typedef enum { } filter_type; struct cgit_filter { + int (*open)(struct cgit_filter *, va_list ap); + int (*close)(struct cgit_filter *); + void (*fprintf)(struct cgit_filter *, FILE *, const char *prefix); + void (*cleanup)(struct cgit_filter *); + int argument_count; +}; + +struct cgit_exec_filter { + struct cgit_filter base; char *cmd; char **argv; int old_stdout; @@ -342,9 +351,13 @@ extern const char *cgit_repobasename(const char *reponame); extern int cgit_parse_snapshots_mask(const char *str); -extern int cgit_open_filter(struct cgit_filter *filter); +extern int cgit_open_filter(struct cgit_filter *filter, ...); extern int cgit_close_filter(struct cgit_filter *filter); +extern void cgit_fprintf_filter(struct cgit_filter *filter, FILE *f, const char *prefix); +extern void cgit_exec_filter_init(struct cgit_exec_filter *filter, char *cmd, char **argv); extern struct cgit_filter *cgit_new_filter(const char *cmd, filter_type filtertype); +extern void cgit_cleanup_filters(void); +extern void cgit_init_filters(void); extern void cgit_prepare_repo_env(struct cgit_repo * repo);