diff options
author | John Keeping | 2014-01-12 17:13:52 +0000 |
---|---|---|
committer | Jason A. Donenfeld | 2014-01-14 02:00:07 +0100 |
commit | 7bd90b8048fd6937766dff7474947dd80205ea7e (patch) | |
tree | 63f9ba4eac9892a843338400042194b3bf115216 /ui-snapshot.c | |
parent | 632efb25c07c1b014a4e8cfbbea759f517c2aaf6 (diff) | |
download | cgit-7bd90b8048fd6937766dff7474947dd80205ea7e.tar.gz cgit-7bd90b8048fd6937766dff7474947dd80205ea7e.tar.bz2 cgit-7bd90b8048fd6937766dff7474947dd80205ea7e.zip |
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.c | 11 |
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, | |||
58 | char *filter_argv[]) | 58 | char *filter_argv[]) |
59 | { | 59 | { |
60 | int rv; | 60 | int rv; |
61 | struct cgit_filter f = { | 61 | struct cgit_exec_filter f; |
62 | .cmd = filter_argv[0], | 62 | cgit_exec_filter_init(&f, filter_argv[0], filter_argv); |
63 | .argv = filter_argv, | 63 | |
64 | }; | 64 | cgit_open_filter(&f.base); |
65 | cgit_open_filter(&f); | ||
66 | rv = write_tar_archive(hex, prefix); | 65 | rv = write_tar_archive(hex, prefix); |
67 | cgit_close_filter(&f); | 66 | cgit_close_filter(&f.base); |
68 | return rv; | 67 | return rv; |
69 | } | 68 | } |
70 | 69 | ||