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>
This commit is contained in:

committed by
Jason A. Donenfeld

szülő
632efb25c0
commit
7bd90b8048
@ -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;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user