|
|
@ -29,15 +29,17 @@ void add_mimetype(const char *name, const char *value) |
|
|
|
struct cgit_filter *new_filter(const char *cmd, int extra_args) |
|
|
|
struct cgit_filter *new_filter(const char *cmd, int extra_args) |
|
|
|
{ |
|
|
|
{ |
|
|
|
struct cgit_filter *f; |
|
|
|
struct cgit_filter *f; |
|
|
|
|
|
|
|
int args_size = 0; |
|
|
|
|
|
|
|
|
|
|
|
if (!cmd || !cmd[0]) |
|
|
|
if (!cmd || !cmd[0]) |
|
|
|
return NULL; |
|
|
|
return NULL; |
|
|
|
|
|
|
|
|
|
|
|
f = xmalloc(sizeof(struct cgit_filter)); |
|
|
|
f = xmalloc(sizeof(struct cgit_filter)); |
|
|
|
f->cmd = xstrdup(cmd); |
|
|
|
f->cmd = xstrdup(cmd); |
|
|
|
f->argv = xmalloc((2 + extra_args) * sizeof(char *)); |
|
|
|
args_size = (2 + extra_args) * sizeof(char *); |
|
|
|
|
|
|
|
f->argv = xmalloc(args_size); |
|
|
|
|
|
|
|
memset(f->argv, 0, args_size); |
|
|
|
f->argv[0] = f->cmd; |
|
|
|
f->argv[0] = f->cmd; |
|
|
|
f->argv[1] = NULL; |
|
|
|
|
|
|
|
return f; |
|
|
|
return f; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|