aboutsummaryrefslogtreecommitdiffstats
path: root/ui-snapshot.c
diff options
context:
space:
mode:
authorJohn Keeping <john@keeping.me.uk>2014-01-12 17:13:52 +0000
committerJason A. Donenfeld <Jason@zx2c4.com>2014-01-14 02:00:07 +0100
commit7bd90b8048fd6937766dff7474947dd80205ea7e (patch)
tree63f9ba4eac9892a843338400042194b3bf115216 /ui-snapshot.c
parent632efb25c07c1b014a4e8cfbbea759f517c2aaf6 (diff)
filter: add interface layer
Change the existing cgit_{open,close,fprintf}_filter functions to delegate to filter-specific implementations accessed via function pointers on the cgit_filter object. We treat the "exec" filter type slightly specially here by putting its structure definition in the header file and providing an "init" function to set up the function pointers. This is required so that the ui-snapshot.c code that applies a compression filter can continue to use the filter interface to do so. Signed-off-by: John Keeping <john@keeping.me.uk>
Diffstat (limited to 'ui-snapshot.c')
-rw-r--r--ui-snapshot.c11
1 files changed, 5 insertions, 6 deletions
diff --git a/ui-snapshot.c b/ui-snapshot.c
index 5136c49..7115ec4 100644
--- a/ui-snapshot.c
+++ b/ui-snapshot.c
@@ -58,13 +58,12 @@ static int write_compressed_tar_archive(const char *hex,
char *filter_argv[])
{
int rv;
- struct cgit_filter f = {
- .cmd = filter_argv[0],
- .argv = filter_argv,
- };
- cgit_open_filter(&f);
+ struct cgit_exec_filter f;
+ cgit_exec_filter_init(&f, filter_argv[0], filter_argv);
+
+ cgit_open_filter(&f.base);
rv = write_tar_archive(hex, prefix);
- cgit_close_filter(&f);
+ cgit_close_filter(&f.base);
return rv;
}