diff options
context:
space:
mode:
Diffstat (limited to 'source/filter.c')
-rw-r--r--source/filter.c48
1 file changed, 16 insertions, 32 deletions
diff --git a/source/filter.c b/source/filter.c
index a7efe56..2731d58 100644
--- a/source/filter.c
+++ b/source/filter.c
@@ -27,22 +27,17 @@ static int open_exec_filter(struct cgit_filter *base, va_list ap)
for (i = 0; i < filter->base.argument_count; i++)
filter->argv[i + 1] = va_arg(ap, char *);
- filter->old_stdout = cgit_die_unless_positive(dup(STDOUT_FILENO),
- "Unable to duplicate STDOUT");
- cgit_die_unless_zero(pipe(pipefd),
- "Unable to create pipe to subprocess");
- filter->pid = cgit_die_unless_non_negative(fork(),
- "Unable to create subprocess");
+ filter->old_stdout = cgit_die_unless_positive(dup(STDOUT_FILENO), "Unable to duplicate STDOUT");
+ cgit_die_unless_zero(pipe(pipefd), "Unable to create pipe to subprocess");
+ filter->pid = cgit_die_unless_non_negative(fork(), "Unable to create subprocess");
if (filter->pid == 0) {
close(pipefd[1]);
- cgit_die_unless_non_negative(dup2(pipefd[0], STDIN_FILENO),
- "Unable to use pipe as STDIN");
+ cgit_die_unless_non_negative(dup2(pipefd[0], STDIN_FILENO), "Unable to use pipe as STDIN");
execvp(filter->cmd, filter->argv);
die_errno("Unable to exec subprocess %s", filter->cmd);
}
close(pipefd[0]);
- cgit_die_unless_non_negative(dup2(pipefd[1], STDOUT_FILENO),
- "Unable to use pipe as STDOUT");
+ cgit_die_unless_non_negative(dup2(pipefd[1], STDOUT_FILENO), "Unable to use pipe as STDOUT");
close(pipefd[1]);
return 0;
}
@@ -52,8 +47,7 @@ static int close_exec_filter(struct cgit_filter *base)
struct cgit_exec_filter *filter = (struct cgit_exec_filter *)base;
int i, exit_status = 0;
- cgit_die_unless_non_negative(dup2(filter->old_stdout, STDOUT_FILENO),
- "Unable to restore STDOUT");
+ cgit_die_unless_non_negative(dup2(filter->old_stdout, STDOUT_FILENO), "Unable to restore STDOUT");
close(filter->old_stdout);
if (filter->pid < 0)
goto done;
@@ -68,8 +62,7 @@ done:
return WEXITSTATUS(exit_status);
}
-static void fprintf_exec_filter(struct cgit_filter *base, FILE *f,
- const char *prefix)
+static void fprintf_exec_filter(struct cgit_filter *base, FILE *f, const char *prefix)
{
struct cgit_exec_filter *filter = (struct cgit_exec_filter *)base;
fprintf(f, "%sexec:%s\n", prefix, filter->cmd);
@@ -101,8 +94,7 @@ static struct cgit_filter *new_exec_filter(const char *cmd, int argument_count)
return &filter->base;
}
-void cgit_exec_filter_init(struct cgit_exec_filter *filter, char *cmd,
- char **argv)
+void cgit_exec_filter_init(struct cgit_exec_filter *filter, char *cmd, char **argv)
{
memset(filter, 0, sizeof(*filter));
filter->base.open = open_exec_filter;
@@ -127,8 +119,7 @@ struct lua_filter {
lua_State *lua_state;
};
-typedef ssize_t (*filter_write_fn)(struct cgit_filter *base, const void *buf,
- size_t count);
+typedef ssize_t (*filter_write_fn)(struct cgit_filter *base, const void *buf, size_t count);
static ssize_t (*libc_write)(int fd, const void *buf, size_t count);
static filter_write_fn filter_write = NULL;
@@ -152,8 +143,7 @@ ssize_t write(int fd, const void *buf, size_t count)
return filter_write(current_write_filter, buf, count);
}
-static inline void hook_write(struct cgit_filter *filter,
- filter_write_fn write_fn)
+static inline void hook_write(struct cgit_filter *filter, filter_write_fn write_fn)
{
// Filters cannot nest, because there is one stdout and one hook, so a
// second one would strand the first.
@@ -178,12 +168,10 @@ static NORETURN void die_lua_error(struct lua_filter *filter)
// page would be fed back into the broken filter.
if (filter_write)
unhook_write();
- die("Lua error in %s: %s", filter->script_file,
- lua_tostring(filter->lua_state, -1));
+ die("Lua error in %s: %s", filter->script_file, lua_tostring(filter->lua_state, -1));
}
-static ssize_t write_lua_filter(struct cgit_filter *base, const void *buf,
- size_t count)
+static ssize_t write_lua_filter(struct cgit_filter *base, const void *buf, size_t count)
{
struct lua_filter *filter = (struct lua_filter *)base;
@@ -199,8 +187,7 @@ static ssize_t write_lua_filter(struct cgit_filter *base, const void *buf,
* so the hook comes off around the call. The zero returned is Lua's count
* of values pushed, not a success code.
*/
-static inline int emit_unfiltered(lua_State *lua_state,
- void (*emit)(const char *text))
+static inline int emit_unfiltered(lua_State *lua_state, void (*emit)(const char *text))
{
const char *text;
filter_write_fn saved_write;
@@ -330,8 +317,7 @@ static int close_lua_filter(struct cgit_filter *base)
return ret;
}
-static void fprintf_lua_filter(struct cgit_filter *base, FILE *f,
- const char *prefix)
+static void fprintf_lua_filter(struct cgit_filter *base, FILE *f, const char *prefix)
{
struct lua_filter *filter = (struct lua_filter *)base;
fprintf(f, "%slua:%s\n", prefix, filter->script_file);
@@ -391,8 +377,7 @@ int cgit_close_filter(struct cgit_filter *filter)
return filter->close(filter);
}
-void cgit_fprintf_filter(struct cgit_filter *filter, FILE *f,
- const char *prefix)
+void cgit_fprintf_filter(struct cgit_filter *filter, FILE *f, const char *prefix)
{
filter->fprintfp(filter, f, prefix);
}
@@ -469,8 +454,7 @@ struct cgit_filter *cgit_new_filter(const char *cmd, filter_type filtertype)
return new_exec_filter(cmd, argument_count);
for (i = 0; i < ARRAY_SIZE(filter_specs); i++) {
- if (len == strlen(filter_specs[i].prefix) &&
- !strncmp(filter_specs[i].prefix, cmd, len))
+ if (len == strlen(filter_specs[i].prefix) && !strncmp(filter_specs[i].prefix, cmd, len))
return filter_specs[i].create(colon + 1, argument_count);
}